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

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

上游lb_units {
  服务器127.0.0.1:88权重= 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; 
  server_name mysite.com; 
 位置 / {
     proxy_set_header X-Real-IP $ remote_addr;
     proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
     proxy_set_header主机$主机;
     proxy_pass http:// lb_units; 
     proxy_redirectclosures;
  }
 }
 #########最后的真实网站##############
服务器{
     listen 88 backlog = 128 default_server;
    重写^ / en /企业$ / en / business永久;
    位置 / {
         proxy_redirectclosures;

      }

现在,当我尝试浏览/ en /企业页面时,它将我redirect到端口88(即: http : //mysite.com :88/en/business )如何强制nginx保持端口80,当它运行重写规则(即重写http://mysite.com/en/business )?

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

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

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