[英]Nginx custom error page and geoip block.
如果在nginx中發現錯誤(例如404、403..etc),我試圖顯示自定義錯誤頁面。 當我使用以下配置訪問/test
,顯示404錯誤頁面。
error_page 403 /403.html;
error_page 404 /404.html;
location = /403.html {
root /usr/share/nginx/html/errors;
allow all;
}
location = /404.html {
root /usr/share/nginx/html/errors;
allow all;
}
# Everything is a 404
location /test {
return 404; #return the code 404
}
之后,我試圖基於geoip模塊添加條件檢查。 如果$deny_request
等於1,nginx將直接返回403。
# Geoip checking to set deny request value.
if ($blocked_country) {
set $deny_request 1;
}
if ($deny_request = 1) {
return 403;
}
按預期返回http狀態403。 但是,它會返回nginx默認的403錯誤頁面,而不是自定義錯誤頁面。 似乎無法通過自定義錯誤頁面對服務器塊進行檢查。 我有什么想念的嗎?
相同的問題使我瘋狂了2個星期或更長時間,但順便發現了一個可行的解決方案,方法如下:
# - error
error_page 502 @offline;
location @offline {
root /var/web/example.org/www;
try_files /502.html 502;
}
我在此答案中找到了解決方案Nginx不會使用自定義502錯誤頁面,盡管我不明白為什么您的解決方案不起作用,我認為應該。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.