主要是記錄踩過的一個坑。。。
nginx要自定義404和500的頁面,但是error_page 配置沒有生效,沒有正常跳轉。
error_page 404 /404.html; error_page 500 503 502 /500.html; location = /500.html { root html; } location = /404.html { root html; }
這是因為我們的靜態資源在上游服務器上,而不是當前nginx直接提供。
nginx proxy 啟用自定義錯誤頁面:
語法:proxy_intercept_errors on | off;
默認值:
proxy_intercept_errors off;
上下文:http, server, location
當被代理的后端服務器的響應狀態碼大於等於300時,決定是否直接將響應發送給客戶端,亦或將響應轉發給nginx由error_page指令來處理。
proxy_intercept_errors 為on 表示 nginx按照原response code 輸出,后端是404就是404。這個變量開啟后,我們才能自定義錯誤頁面。
proxy_intercept_errors on;
修改后測試通過
