nginx配置錯誤頁面


有時候頁面會遇到404頁面找不到錯誤,或者是500、502這種服務端錯誤,這時候我們可能希望自己定制返回頁面,不希望看到默認的或者是內部的錯誤頁面,可以通過nginx配置來實現。

1 50x錯誤
對於50x錯誤,通常不會直接將錯誤內容顯示在頁面,而是由前台頁面來解析錯誤內容並展示在前台的某個位置。
我們可以自己定義一個json返回對象,由頁面來解析這個json對象。
以500錯誤為例,在nginx服務器任意目錄下(例如,/usr/share/nginx/html)創建一個500.json文件,內容如下:

{
    "errorCode": 500,
    "errorDesc": "服務暫時不可用,請稍后再試"
}

nginx配置文件中,在server段中添加以下內容:

error_page 500 /500.json ;
location ^~ /500 {
root /usr/share/nginx/html ;
}

重啟nginx生效。這時如果后端服務返回500錯誤,則nginx會把自定義的json報文返回到前台

2 404錯誤
對於404錯誤,很多時候可能用戶會輸錯url,這時候錯誤會直接展示在頁面上。
可以有兩種處理方式,一種是同50x錯誤,自己定義一個404錯誤頁面,這個頁面就可以做的好看一點。
另一種方式是重定向到某個已存在的uri。例如,后端已經定義好了404錯誤頁面,nginx就不需要單獨創建一個404頁面了,直接指向這個頁面就可以了。
配置方法如下:
在http段中添加以下配置:

proxy_intercept_errors on;
error_page 404 =301 https://$host:443/#/404 ;

proxy_intercept_errors表示對后端服務器返回錯誤進行攔截處理;
error_page 404 =301表示重定向到錯誤頁面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM