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