nginx监听多个端口

问题:

  1. nginx监听80端口,转发到本地8000端口,能正常访问
  2. 再配置nginx监听8001端口,转发到本地8001端口,输入http:ip:8001却被转发到8000端口

原因:
两个nginx的server配置中,均有
proxy_set_header Host $host;
浏览器请求头Host只携带了ip地址,http缺省端口为80,匹配nginx监听的80端口,从而转发到本地8000端口

解决办法:
proxy_set_header Host $host:$server_port;

Q.E.D.


一切很好,不缺烦恼。