NGINX 中配置负载均衡器

        Nginx 提供了多种负载均衡策略,如轮询(Round Robin)、最少连接数(Least Connections)、IP 哈希(IP Hash)等。这里以轮询策略为例进行配置。

1. 准备工作

假设你有以下几台 PHP 服务器:

  • 192.168.1.101 (PHP Server 1)
  • 192.168.1.102 (PHP Server 2)
  • 192.168.1.103 (PHP Server 3)

NGINX 服务器会作为反向代理,负责将流量分发到这些 PHP 服务器上。

2. 配置 NGINX

  1. 编辑 NGINX 配置文件

    打开 NGINX 配置文件进行编辑,通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/conf.d/default.conf,也可能是其他配置文件。

    sudo nano /etc/nginx/nginx.conf
  2. 定义上游服务器

    在配置文件中,使用 upstream 指令定义你的 PHP 服务器池。你可以在 http 块中添加以下配置:

    http {
        upstream php_servers {
            server 192.168.1.101;
            server 192.168.1.102;
            server 192.168.1.103;
        }
    
        server {
            listen 80;
            server_name yourdomain.com;
    
            location / {
                proxy_pass http://php_servers;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
    
            # 其他配置
        }
    }
    

    这里,php_servers 是你定义的服务器组名称,proxy_pass 将请求转发到这个服务器组。Nginx 会默认使用轮询策略将请求分配到这些服务器上。

  3. 配置负载均衡策略(可选)

    你可以根据需求选择不同的负载均衡策略:

    • 轮询(默认):不需要额外配置,Nginx 会按顺序将请求分配到每个服务器。

    • 最少连接数:将请求发送到当前连接数最少的服务器。

      http {
          upstream php_servers {
              server 192.168.1.101;
              server 192.168.1.102;
              server 192.168.1.103;
          }
      
          server {
              listen 80;
              server_name yourdomain.com;
      
              location / {
                  proxy_pass http://php_servers;
                  proxy_set_header Host $host;
                  proxy_set_header X-Real-IP $remote_addr;
                  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                  proxy_set_header X-Forwarded-Proto $scheme;
              }
      
              # 其他配置
          }
      }
      

    • IP 哈希:根据客户端 IP 分配请求,同一个 IP 的请求总是分配到同一台服务器。

      upstream php_servers {
          ip_hash;
          server 192.168.1.101;
          server 192.168.1.102;
          server 192.168.1.103;
      }
      

  4. 配置健康检查(可选)

    Nginx 还可以配置简单的健康检查,确保只向可用的服务器发送请求:

    upstream php_servers {
        server 192.168.1.101;
        server 192.168.1.102;
        server 192.168.1.103;
    
        # 健康检查配置
        check interval=5000 rise=2 fall=5 timeout=2000;
    }
    

    上述配置定义了一个健康检查,每隔 5000 毫秒进行一次检查,如果服务器连续 2 次健康检查通过,则将其标记为可用;如果连续 5 次检查失败,则将其标记为不可用。

  5. 重新加载 NGINX 配置

    保存配置文件后,重新加载 NGINX 使配置生效:

    sudo nginx -t
    sudo systemctl reload nginx
    

3. 测试负载均衡

配置完成后,访问你的域名 http://yourdomain.com,Nginx 会根据负载均衡策略将请求分发到后端的 PHP 服务器上。你可以通过不同的方式(如服务器日志、特定的响应内容等)来验证请求是否被均匀分配到各个服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值