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表示重定向到錯誤頁面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章