< 返回

nginx负载均衡、rewrite重写规则

2024-11-18 17:13 作者:xiao gang 阅读量:33

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,广泛应用于负载均衡和 URL 重写等场景。以下是关于 Nginx 负载均衡和 URL 重写的基本信息和示例。

Nginx 负载均衡

Nginx 支持多种负载均衡方法,包括轮询、最少连接、IP 哈希等。以下是一个简单的配置示例:

http {
    upstream backend {
        # 定义后端服务器
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;

        location / {
            # 使用负载均衡
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

在这个例子中,Nginx 会在 backend1.example.com、backend2.example.com 和 backend3.example.com 三台后端服务器之间进行轮询。

Nginx URL 重写

Nginx 提供了强大的 URL 重写功能,可以通过 rewrite 指令来实现 URL 的重定向和重写。以下是一些示例:

示例 1:基本的重定向

server {
    listen 80;
    server_name example.com;

    # 将 /old-path 重定向到 /new-path
    rewrite ^/old-path$ /new-path permanent;
}

示例 2:使用正则表达式的重写

server {
    listen 80;
    server_name example.com;

    # 将所有以 .html 结尾的请求重写为 .php
    rewrite ^/(.*)\.html$ /$1.php last;
}

示例 3:使用条件进行重写

server {
    listen 80;
    server_name example.com;

    location / {
        # 如果请求的文件不存在,则重写到 /index.php
        try_files $uri $uri/ /index.php?$args;
    }
}

总结

Nginx 的负载均衡和 URL 重写功能非常强大,可以根据不同的需求进行灵活配置。在实际应用中,可以根据具体的业务需求调整配置,确保性能和可用性。请确保在配置 Nginx 之前备份原有的配置文件,并在更改后进行测试。

联系我们
返回顶部