0
我有類似Nginx上配置:nginx的proxy_pass被設定的端口響應
server {
listen 80;
listen 443;
server_name api.mysite.dev;
location/{
proxy_set_header Host "api.mysite.dev";
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $scheme://127.0.0.1:8001;
}
}
server {
listen 80;
listen 443;
server_name mysite.dev www.mysite.dev;
# Forward all /api/ requests ti api.mysite.dev
# sadly need to keep this around for backwards compatibility
location /api/ {
proxy_set_header Host "api.mysite.dev";
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $scheme://127.0.0.1:8001/;
}
# The proxy_pass here ends up putting the port (8002) in the response URL.
location/{
proxy_set_header Host "www.mysite.dev";
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $scheme://127.0.0.1:8002;
}
}
所以,作爲評論說,當我要求www.mysite.dev,我的瀏覽器被轉發到www.mysite .dev:8002。 任何想法我在這裏做錯了嗎?
在此先感謝!
不幸的是,這並沒有解決問題。更多信息: 瀏覽器正在重定向到Host標頭中的任何內容。因此,如果我將其設置爲'www'並請求www.mysite.dev/some/resource,瀏覽器將被髮送到www:8002/some/resource。 –
我剛剛注意到你錯過了這個我一直用於反向代理的頭文件proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; –
所以,這*主要是*正確的,所以我編輯了你的答案。添加「proxy_set_header X-Forwarded-Host $ host」是最終爲我解決的。 –