简介
在实际项目中需要用到ngnix做反向代理,但是做完反向代理后发现子应用无法获取正确的url和端口。比如访问nginx的url为 192.168.1.1/test ,那么现在将/test反向代理到 192.168.1.2:8080/test 这个url下,那么我在 192.168.1.2:8080/test 下就获取端口一直会是80,获取的url不会是访问nginx时的192.168.1.1/test ,这里我们需要对ngnix的配置文件的请求头进行修改加入proxy_set_header HOST $host;属性如下$host代表你访问nginx的访问路径,在路径后加入应用的端口,那么在子应用中就能获取到正确的端口了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| upstream gateway { server 192.168.171.42:30000; # server 192.168.171.43:30000; # server 192.168.171.45:30000; }
server { listen 8080; server_name location;
location /cas { proxy_pass http://192.168.171.44:8089/cas; proxy_set_header HOST $host:8089; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
location / { proxy_pass http://gateway; proxy_set_header HOST $host:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
|