nginx 负载均衡器重写以监听端口

nginx 负载均衡器重写以监听端口

我已经使用 nginx 实现了负载均衡器,如下所示:

上游 lb_units {
  服务器 127.0.0.1:88 weight=7 max_fails=3 fail_timeout=30s; # 反向代理到 BES1
  服务器 10.200.200.107 weight=1 max_fails=3 fail_timeout=30s; # 反向代理到 BES2
  服务器 10.200.200.94 weight=1 max_fails=3 fail_timeout=30s; # 反向代理到 BES2
}
服务器 {
 听80;
 服务器名称 mysite.com;
 地点 / {
    proxy_set_header X-真实IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header 主机 $host;
    代理通行证http://lb_units;
    代理重定向关闭;
 }
}
#########终于到了真正的网站################
服务器 {
    监听 88 backlog=128 默认服务器;
    重写 ^/en/business$ /en/business 永久;
    地点 / {
        代理重定向关闭;

     }

现在每当我尝试浏览/en/businesses 页面,它将我重定向到端口 88(即:http://mysite.com:88/en/business)我怎样才能强制 nginx 在运行重写规则时继续使用端口 80(即,使重写为 http://mysite.com/en/business)?

答案1

由于您的server块正在监听端口 88,并且您在重写中使用了相对 URL,因此 nginx 在生成的 URL 中使用端口 88。

要解决此问题,请指定完整的 URL。例如:

        rewrite  ^/en/businesses$             http://mysite.com/en/business permanent;

相关内容