我已经使用 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;