Nginx代理應用端口丢失問題
最近使用Nginx代理weblogic的過程中發現通路了weblogic的console後,在應用跳轉至登入界面時對應的端口号自動丢失了。比如我通路的是http://localhost:8888/console,在跳轉至登入界面時位址欄的位址自動變為了http://localhost/console/login/LoginForm.jsp,很明顯的是端口号丢失了。我的配置是這樣的:
server {
listen 8888;
server_name localhost:8888;
#charset koi8-r;
proxy_connect_timeout 300s;
proxy_set_header Host $host;
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /emc {
proxy_pass http://localhost:7002;
}
location / {
proxy_pass http://127.0.0.1:7001;
location = /50x.html {
root html;
}
}
注意上面的proxy_set_header Host $host這行,其中的host是不帶端口号的,将其改為proxy_set_header Host $host:8888,問題得以解決。