lwd8805 2017-10-16 12:49 采纳率: 0%
浏览 2557

nginx一次请求转发到了多台机器(19.9和19.22),求大神解惑

10.152.167.221 - 16/Oct/2017:18:02:39 +0800 GET /book/xxxx/yyyy?appVersion=2.800dcad136efdf6c6e61a2e8222d81ba HTTP/1.1 200 34 - Apache-HttpClient/4.5.1 (Java 1.5 minimum; Java/1_.8.0_131) - 0.023 0.000, 0.023 application/json; charset=utf-8 - - - 120.130.19.9:80, 120.130.19.22:80 - _

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 00:54
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于Nginx的负载均衡配置导致的。在Nginx中,你可以使用proxy_pass指令将请求路由到另一个服务器。

    以下是一个简单的例子:

    server {
        listen 80;
        server_name example.com;
    
        location / {
            proxy_pass http://19.9.example.com/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    

    在这个例子中,当用户访问example.com/book/xxxx/yyyy?appVersion=2.800dcad136efdf6c6e61a2e8222d81ba时,请求会被路由到19.9.example.com上,并且返回一个HTTP响应码为200。

    注意:你需要替换19.9.example.com为你实际要使用的服务器地址。

    另外,你也可以通过设置worker_connections参数来限制每个连接的最大并发数,从而避免过多的请求被路由到同一台服务器上。例如:

    server {
        listen 80;
        server_name example.com;
    
        location / {
            proxy_pass http://19.9.example.com/;
            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_connect_timeout 10s;
            proxy_read_timeout 10s;
            worker_connections 1000;
        }
    }
    

    在这个例子中,每个连接的最大并发数设置为1000。

    评论

报告相同问题?