描述
使用nginx代理后,后端应用服务器得到的端口是还是应用本身的端口号(例如8080),而nginx对外的端口号是18080,我们希望应用服务器检测到的端口也是18080
例如如下代码:
request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
问题解决
配置如下,主要增加了 proxy_set_header Host $host:18080; 指定端口号,这样程序检测到的端口就是18080了
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host:18080; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
文章评论