上周末兄弟項目準備擴展服務(wù)器以便提供更好的服務(wù),兄弟項目有一些功能是實(shí)時(shí)提供到我這邊的,需要我這邊暫時(shí)把對應系統功能屏蔽,因為使用nginx,所以可以直接配置nginx重定向到固定系統維護頁(yè)面。
nginx重定向其實(shí)很簡(jiǎn)單,用return或rewrite關(guān)鍵字均可,因為重定向后直接跳轉到靜態(tài)頁(yè)面,不需要后續操作和記錄,所以直接301永久重定向。
其中重定向既可以在server中配置,也可以在具體的location中配置,下面分別簡(jiǎn)單介紹。
在server中配置:
http { server{ listen 80; server_name A.com; # 以下return 或 rewrite 選擇其中一個(gè)就行。其中upgrade.html 是自己寫(xiě)的提示頁(yè)面 return 301 http://B.com/upgrade.html; # rewrite ^/(.*)$ http://B.com/upgrade.html permanent; location / { # 此處省略后面配置內容 } } }
或者在location中配置:
http { server{ listen 80; server_name A.com; location / { rewrite ^/(.*)$ http://B.com/upgrade.html permanent; # 此處省略后面配置內容 } } }
從以上實(shí)例看出,return用301參數重定向,rewrite用permanent(當然還可以用break,last,區別的話(huà)自己查資料)。
不知道你們有沒(méi)有發(fā)現,以上兩個(gè)例子中,都是用 A.com去重定向到 B.com ,我試過(guò),用A.com直接重定向到A.com/upgrade.html,會(huì )報錯重復次數太多,也就是進(jìn)入死循環(huán)。在同時(shí)管理多個(gè)域名是可以配置用A重定向B,但是如果只有一個(gè)域名A那怎么弄呢?
這時(shí)候就用到if條件判斷了,此處我們以在server中配置為例說(shuō)明:
http { server{ listen 80; server_name A.com; # 注意 if 后面必須有一個(gè)空格?。?! if ($request_uri !~ "/upgrade.html$") { return 301 http://A.com/upgrade.html; } location / { # 此處省略后面配置內容 } } }
以上實(shí)例說(shuō)明,當訪(fǎng)問(wèn)路徑不包含 /upgrade.html時(shí)就重定向到upgrade.html,此時(shí)能夠重定向,不會(huì )再有重復次數太多的提示,但有另一個(gè)問(wèn)題,就是upgrade.html中的圖片無(wú)法顯示了,暫時(shí)沒(méi)時(shí)間去研究如何避免圖片被重定向了,后面有時(shí)間再補充。
測試if條件的時(shí)候,遇到一個(gè)特別坑的事,就是添加if后重啟nginx報錯:
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
輸入systemctl status nginx.service可查看錯誤信息,其中nginx: [emerg] unknown directive "if($request_uri"錯誤查找到答案,原來(lái)是if后面必須要有一個(gè)空格?。。?!,太坑了,網(wǎng)上那些介紹nginxif的文章都沒(méi)有提到這么重要的信息。。。
感謝資料:
配置nginx輸入任何地址都跳轉至維護頁(yè)面
筆記一下:配置nginx輸入任何地址都跳轉至維護頁(yè)面
server { listen 80; root /xxx/xxx/src; index index.html index.htm; server_name test.xxx.com; set $flag 0; if ($request_uri !~ "(/static/.*)$"){ set $flag "${flag}1"; } if ($request_uri !~ "/502.html$" ){ set $flag "${flag}2"; } if ($flag = "012") { rewrite ^(.*) http://test.xxx.com/502.html permanent; } location /{ ...
以上就是nginx 重定向到系統維護頁(yè)面的詳細內容,更多關(guān)于nginx重定向維護頁(yè)面的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站