怎么在Nginx 重定向時獲取域名

發(fā)布時間:2024-04-19
服務(wù)器
怎么在nginx 重定向時獲取域名?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
http 請求跳轉(zhuǎn)到同名的 https 請求,配置如下:
http{server{listen80;server_namesub1.example.comsub2.example.com;return301https://$server_name$request_uri;}server{listen443sslspdy;server_namesub1.example.comsub2.example.com;#…}}
因為 301 是永久重定向,某些瀏覽器的緩存會記住重定向,下次訪問原地址就會直接向新地址發(fā)請求,所以這個問題在瀏覽器里面不一定重現(xiàn)得了(包括 chrome 的 incognito window),能每次完整重現(xiàn)的方式只有 curl 。
$curl-ihttp://sub2.example.com/http/1.1301movedpermanentlyserver:nginx/1.9.3(ubuntu)date:tue,23feb201606:06:30gmtcontent-type:text/htmlcontent-length:193connection:keep-alivelocation:https://sub1.example.com/
查了一下,發(fā)現(xiàn)問題出在$server_name變量上。這個變量會始終返回 server_name 中第一個名字。這里其實應(yīng)該用$host變量。修改后的配置如下:
http{server{listen80;server_namesub1.example.comsub2.example.com;return301https://$host$request_uri;}}
$host變量會按照以下優(yōu)先級獲取域名:
request-line 中的域名信息。request-line 包含 method, uri 和 http 版本。
請求頭信息中的 \”host\” 。
nginx 中匹配的 server_name 配置。
看完上述內(nèi)容,你們掌握怎么在nginx 重定向時獲取域名的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注西部數(shù)碼資訊頻道,感謝各位的閱讀!
上一個:win10怎樣設(shè)置虛擬內(nèi)存才合理(windows10如何設(shè)置虛擬內(nèi)存)
下一個:檢測實驗室實驗記錄和報告應(yīng)該注意什么

如何大幅提高測序組裝和分析的成本效益
濕膜加濕機優(yōu)點妙不可言!多種領(lǐng)域隨處可見
Elektror離心式通風(fēng)機SD 72 101271-0000很景氣
土地征收補償費用一覽表
唐菖蒲鐮孢基腐病的防治
德國HYDAC液壓缸故障診斷及處理方法
接口皮子熱收縮帶型號定制
普洱茶陪我們走過春夏秋冬
一款由豆?jié){機改造的均質(zhì)乳化反應(yīng)器
手動試壓泵的安全操縱規(guī)程
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos