当前位置: 首页 > article >正文

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 服务器上。你可以通过不同的方式(如服务器日志、特定的响应内容等)来验证请求是否被均匀分配到各个服务器。


http://www.kler.cn/a/293761.html

相关文章:

  • YUM 的使用
  • 【LeetCode】【算法】55. 跳跃游戏
  • 彻底理解ARXML中的PDU
  • 【go从零单排】Random Numbers、Number Parsing
  • 【设计模式】关联关系与依赖关系
  • 对称加密与非对称加密:密码学的基石及 RSA 算法详解
  • Dance with compiler - EP1
  • 单调栈的实现
  • libvncclient编写多线程qt的VNC客户端
  • Spring Boot 注解探秘:HTTP 请求的魅力之旅
  • docker里修改时间为上海时间
  • 【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件
  • 保研 比赛 利器: 用AI比赛助手降维打击数学建模
  • SpringMVC基于注解使用:JSON
  • 端口安全老化细节
  • Sentence-BERT实现文本匹配【分类目标函数】
  • Gitlab-ce upgrade 16.0.1 to 17.3.1【Gitlab-ce 16.0.1 升级 17.3.1】
  • git 提交代码由原先账号密码调整为ssh
  • DevExpress WinForms v24.1新版亮点:功能区、数据编辑器全新升级
  • xxl-job分布式任务调度平台
  • 「深入理解」HTML Meta标签:网页元信息的配置
  • 在嵌入式板子上搭建和自定义live555服务器---编译问题和方法整理
  • 虚幻5|C++第三人称射击(1)添加摄像机
  • 球球大作战
  • ELK学习笔记(二)——使用K8S部署Kibana8.15.0
  • 辨别高防服务器