我已经使用 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-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header 主机 $host; proxy_pass http://lb_units; proxy_redirect 关闭; } } #########终于真正的网站############## 服务器 { 听 88 backlog=128 default_server; 重写 ^/en/businesses$ /en/business permanent; 地点 / { proxy_redirect 关闭; }
现在每当我尝试浏览/en/businesses 页面时,它都会将我重定向到端口 88(即:http ://mysite.com:88/en/business ) 我如何强制 nginx 在运行时保持端口 80重写规则(即重写为 http://mysite.com/en/business)?
由于您的
server
块正在侦听端口 88,并且您在重写中使用了相对 URL,因此 nginx 在生成的 URL 中使用了端口 88。要解决此问题,请指定完整的 URL。例如: