我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • git

  • composer

  • linux

  • nginx

    • Nginx
    • nginx服务器跨域配置
    • ssl免费证书生成
    • nginx负载
      • nginx在linux上操作
      • ab基本压测
    • docker

    • vpn

    • frp

    • 脚本

    • 硬件

    • 运维
    • nginx
    窝窝侠
    2024-11-01

    nginx负载

    如果你希望在 Nginx 的 upstream 配置中使用哈希(hash)策略来分发请求,可以使用 hash 指令。这种策略根据请求的特定参数(如客户端 IP 或请求 URI)来决定将请求转发到哪个后端服务器。以下是如何配置哈希负载均衡的详细步骤。

    # 1. 使用 Hash 策略的 Nginx 配置示例

    下面是一个示例,展示如何使用哈希策略配置 Nginx,使其根据客户端 IP 地址进行负载均衡。

    http {
        upstream backend {
            hash $remote_addr;  # 使用客户端 IP 地址进行哈希
            server backend1.example.com:80;  # 第一台后端服务器
            server backend2.example.com:80;  # 第二台后端服务器
            server backend3.example.com:80;  # 第三台后端服务器(如果有)
        }
    
        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;
                proxy_set_header X-Forwarded-Proto $scheme;
            }
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    # 2. 配置说明

    • hash $remote_addr;: 这行指令告诉 Nginx 使用请求的客户端 IP 地址进行哈希,从而确定将请求转发到哪个后端服务器。
    • server backend1.example.com:80;: 列出所有后端服务器,Nginx 会根据哈希值选择相应的服务器。

    # 3. 其他哈希选项

    • 根据请求 URI: 如果希望根据请求的 URI 哈希,可以这样配置:
    hash $request_uri;  # 使用请求的 URI 进行哈希
    
    1
    • 自定义哈希参数: 也可以使用其他变量,例如 $http_user_agent 来根据用户代理进行哈希。

    # 4. 配置权重

    如果需要为某些后端服务器分配不同的权重,可以在 server 指令中添加 weight 参数。例如:

    server backend1.example.com:80 weight=3;  # 权重为 3
    server backend2.example.com:80 weight=1;  # 权重为 1
    
    1
    2

    # 5. 检查和重启 Nginx

    在保存配置后,确保检查 Nginx 配置是否正确:

    sudo nginx -t
    
    1

    然后重启或重新加载 Nginx:

    sudo systemctl restart nginx
    
    1

    # 6. 测试配置

    访问 Nginx 服务器的 IP 地址或域名,检查请求是否被正确转发到后端服务器,并观察不同的客户端 IP 是否总是被转发到相同的后端服务器。

    # 总结

    通过以上步骤,你可以在 Nginx 中使用哈希策略来实现负载均衡,使请求根据特定参数(如客户端 IP 或请求 URI)进行分配。

    在线编辑 (opens new window)
    上次更新: 2025/02/25, 18:30:54
    ssl免费证书生成
    nginx在linux上操作

    ← ssl免费证书生成 nginx在linux上操作→

    最近更新
    01
    showprocess用法
    04-29
    02
    vue3中尖括号和冒号的使用细则
    04-29
    03
    sd使用
    02-22
    更多文章>
    🖥️

    © 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×