关于clb代理nginx静态页面刷新后自动添加端口问题

需求

阿里clb代理前端nginx应用,使得可以公网访问

 

现象

clb及nginx配置完毕后,初次访问正常,但是首页刷新后会自动添加nginx端口,导致页面无法访问

 

模拟配置

模拟clb配置

server {
  listen 80 default_server;
  server_name demoapp.com.cn;
  location /public/ {
  	proxy_pass http://192.168.99.100:8080/public/;
  }
}

静态服务器配置

server {
  listen 8080 default_server;
  location ~* /public/(share|webview) {
    root html ;
    proxy_buffering off;
    index index.html index.htm;
  }
}

 通过demoapp.com.cn/public/share访问的时候,首页刷新后,会跳转到demoapp.com.cn:8080/public/share 

 解决方案

这个时候,port_in_redirect就派上用场了。添加此参数,可解决
 
server {
  listen 8080 default_server;
  location ~* /public/(share|webview) {
    root html ;
    proxy_buffering off;
    port_in_redirect off;
    index index.html index.htm;
}
}

 通过指定port_in_redirect off;告知nginx在redirect的时候不要带上port,如果没有配置,默认该值为true 

posted @ 2021-12-30 10:23  apoorgod  阅读(116)  评论(0)    收藏  举报