前因后果就不說了,就是用到了重定向,然而在項(xiàng)目是使用Nginx的反向代理,然后問題就來了,在訪問項(xiàng)目地址的時(shí)候,頁面報(bào)出503 service Unavailable,檢查了一下路徑,發(fā)現(xiàn)路徑中端口號(hào)沒有了,例如122.51.157.193:9099直接就變成了122.51.157.193 , 百思不得其解!
因?yàn)榉N種原因,Nginx并不能監(jiān)聽在80端口,或者外部通過NAT方式將請求丟給Nginx,外部地址并不是標(biāo)準(zhǔn)http(s)端口,此時(shí)Nginx并不能美好的處理這些重定向 。發(fā)生重定向的時(shí)候會(huì)丟失端口 。
#反向代理
listen 81 default_server;
set $TOMCAT_HOME /var/lib/tomcat7;
location / {
root $TOMCAT_HOME/webapps/ROOT;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 訪問/data的時(shí)候會(huì)自動(dòng)加上/成為/data/
listen 81 default_server;
location /data {
root /var/data;
}
處理
這個(gè)很容易搞定,網(wǎng)上流傳開來的proxy_set_header對此不起作用 。后來我發(fā)現(xiàn)gitlab-ce這個(gè)用非標(biāo)準(zhǔn)端口訪問是沒有問題的,我看了一下gitlab-ce的nginx配置,發(fā)現(xiàn)是這么配置的:
proxy_set_header Host $http_host;
我又發(fā)現(xiàn)nginx軟件包釋放出的配置文件(from ppa: NGINX Stable),發(fā)現(xiàn)里面其實(shí)是帶有一個(gè)參考文件/etc/nginx/proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
這里面寫的也是 proxy_set_header Host $http_host;,于是乎直接include,搞定
location / {
root $TOMCAT_HOME/webapps/ROOT;
proxy_pass http://127.0.0.1:8080/;
include proxy_params;
【js獲取302重定向后的地址 nginx302跳轉(zhuǎn)丟端口】}
沒這個(gè)文件就把這些內(nèi)容手工敲到location配置段下 。
再細(xì)看官方文檔 , 其實(shí)也提及了:
An unchanged “Host” request header field can be passed like this:
proxy_set_header Host $http_host;
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 泰拉瑞亞妖刀村正獲取方法詳解
- 讓網(wǎng)頁自動(dòng)刷新,輕松獲取最新信息
- 解決獲取證書私鑰容器句柄失敗問題的方法
- Java代碼實(shí)現(xiàn)獲取本機(jī)電腦IP地址
- Windows 8系統(tǒng)有線網(wǎng)卡自動(dòng)獲取IP地址設(shè)置步驟詳解
- MySQL如何獲取連續(xù)日期
- Win10電腦設(shè)置指南:獲取完成設(shè)置的幫助
- 如何取消電腦應(yīng)用獲取通話歷史記錄
- Windows 11發(fā)布會(huì)時(shí)間及如何獲取信息
- LOL中老鼠圖奇都鐸王朝上山若水皮膚獲取方式
