配置nginx 重定向到系統(tǒng)維護(hù)頁面
上周末兄弟項(xiàng)目準(zhǔn)備擴(kuò)展服務(wù)器以便提供更好的服務(wù),兄弟項(xiàng)目有一些功能是實(shí)時(shí)提供到我這邊的,需要我這邊暫時(shí)把對應(yīng)系統(tǒng)功能屏蔽,因?yàn)槭褂胣ginx,所以可以直接配置nginx重定向到固定系統(tǒng)維護(hù)頁面。
nginx重定向其實(shí)很簡單,用return或rewrite關(guān)鍵字均可,因?yàn)橹囟ㄏ蚝笾苯犹D(zhuǎn)到靜態(tài)頁面,不需要后續(xù)操作和記錄,所以直接301永久重定向。
其中重定向既可以在server中配置,也可以在具體的location中配置,下面分別簡單介紹。
在server中配置:
http { server{ listen 80; server_name A.com; # 以下return 或 rewrite 選擇其中一個(gè)就行。其中upgrade.html 是自己寫的提示頁面 return 301 http://B.com/upgrade.html; # rewrite ^/(.*)$ http://B.com/upgrade.html permanent; location / { # 此處省略后面配置內(nèi)容 } } }
或者在location中配置:
http { server{ listen 80; server_name A.com; location / { rewrite ^/(.*)$ http://B.com/upgrade.html permanent; # 此處省略后面配置內(nèi)容 } } }
從以上實(shí)例看出,return用301參數(shù)重定向,rewrite用permanent(當(dāng)然還可以用break,last,區(qū)別的話自己查資料)。
不知道你們有沒有發(fā)現(xiàn),以上兩個(gè)例子中,都是用 A.com去重定向到 B.com ,我試過,用A.com直接重定向到A.com/upgrade.html,會(huì)報(bào)錯(cuò)重復(fù)次數(shù)太多,也就是進(jìn)入死循環(huán)。在同時(shí)管理多個(gè)域名是可以配置用A重定向B,但是如果只有一個(gè)域名A那怎么弄呢?
這時(shí)候就用到if條件判斷了,此處我們以在server中配置為例說明:
http { server{ listen 80; server_name A.com; # 注意 if 后面必須有一個(gè)空格?。?! if ($request_uri !~ "/upgrade.html$") { return 301 http://A.com/upgrade.html; } location / { # 此處省略后面配置內(nèi)容 } } }
以上實(shí)例說明,當(dāng)訪問路徑不包含 /upgrade.html時(shí)就重定向到upgrade.html,此時(shí)能夠重定向,不會(huì)再有重復(fù)次數(shù)太多的提示,但有另一個(gè)問題,就是upgrade.html中的圖片無法顯示了,暫時(shí)沒時(shí)間去研究如何避免圖片被重定向了,后面有時(shí)間再補(bǔ)充。
測試if條件的時(shí)候,遇到一個(gè)特別坑的事,就是添加if后重啟nginx報(bào)錯(cuò):
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可查看錯(cuò)誤信息,其中nginx: [emerg] unknown directive "if($request_uri"錯(cuò)誤查找到答案,原來是if后面必須要有一個(gè)空格?。。。?,太坑了,網(wǎng)上那些介紹nginxif的文章都沒有提到這么重要的信息。。。
感謝資料:
if后必須有空格:https://blog.csdn.net/palet/article/details/103394236
nginx中return和rewrite:https://blog.csdn.net/u010982507/article/details/104025717
知識點(diǎn)補(bǔ)充
配置nginx輸入任何地址都跳轉(zhuǎn)至維護(hù)頁面
筆記一下:配置nginx輸入任何地址都跳轉(zhuǎn)至維護(hù)頁面
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 重定向到系統(tǒng)維護(hù)頁面的詳細(xì)內(nèi)容,更多關(guān)于nginx重定向維護(hù)頁面的資料請關(guān)注腳本之家其它相關(guān)文章!
- nginx 老網(wǎng)站域名重定向到新網(wǎng)站的方法(親測)
- 在Nginx中實(shí)現(xiàn)URL重寫與重定向
- Nginx地址重定向的實(shí)現(xiàn)
- nginx的服務(wù)配置及重定向問題
- nginx重寫和重定向關(guān)系與配置方式
- nginx重定向解決(rewrite or internal redirection cycle)
- Nginx重定向后請求參數(shù)丟失的原因分析及解決方案
- nginx反向代理后無限重定向的問題解決方法
- Nginx中rewrite(地址重定向)的深入剖析
- 利用Nginx實(shí)現(xiàn)URL重定向的簡單方法
- nginx中重定向的實(shí)現(xiàn)
相關(guān)文章
Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程
這篇文章主要介紹了Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程,本文用反向代理的方式代理基于Node.js的Web應(yīng)用,需要的朋友可以參考下2014-09-09nginx 代理80端口轉(zhuǎn)443端口的實(shí)現(xiàn)
這篇文章主要介紹了nginx 代理80端口轉(zhuǎn)443端口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Ubuntu+Nginx+Mysql+Php+Zend+eaccelerator安裝配置文字版
把我架設(shè)lnmp網(wǎng)站的過程寫出來,希望對想架設(shè)網(wǎng)站的朋友有所幫助,如有更好的辦法請?zhí)岢鰜?/div> 2012-02-02Nginx服務(wù)器添加Systemd自定義服務(wù)過程解析
這篇文章主要介紹了Nginx服務(wù)器添加Systemd自定義服務(wù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11nginx代理postgresql的實(shí)現(xiàn)示例
本文主要介紹了nginx代理postgresql的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻
Nginx?Proxy?Manager是一款功能強(qiáng)大的開源軟件,配置Web應(yīng)用防火墻,可以防止常見的web攻擊,本文就來介紹一下Nginx?Proxy?Manager配置Web?WAF應(yīng)用防火墻,感興趣的可以了解一下2025-02-02nginx多l(xiāng)ocation配置實(shí)例代碼
公司測試環(huán)境使用nginx部署多個(gè)前端項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于nginx多l(xiāng)ocation配置的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04最新評論