Nginx
高效定義許多 nginx 自定義錯誤頁面
我為Wikipedia 頁面上列出的大多數錯誤創建了一些自定義 4xx 和 5xx HTML 錯誤頁面。我想將它們安裝在我設置的任何 nginx 伺服器上,而不會對性能產生太大影響。
按照文件我想出了這個配置指令的錯誤:
error_page 404 /nginx/404.html; location = /nginx/404.html { alias /usr/share/nginx/errors/404.html; internal; }
我把它放進去,可以在我所有的塊
/etc/nginx/snippets/errors.conf
中包含這個片段。server
這很好用,但是……
它為盒子上的每個塊添加了近 50 個
location
指令。server
這是否過分,是否有更性能友好的方式來實現相同的目標?我避免了伺服器端包含、if 語句,並認為它需要更多的伺服器資源而重寫。
當您不將每個錯誤頁面映射到它自己的位置時,您可以使用單個位置指令:
error_page 402 /error/402.html; error_page 403 /error/403.html; error_page 404 /error/404.html; ... etc. location = /error/ { alias /usr/share/nginx/errors/; }
為什麼不在
ssi on;
您的錯誤位置嘗試伺服器端包含 ( )?然後,您可以為所有錯誤程式碼定義一個錯誤頁面。它是動態的,不涉及真正的程式語言。這是一個很好的模板範例,它說明了您可以使用該技術執行的大部分操作:https ://www.cambus.net/nginx-and-server-side-includes/