簡體   English   中英

Nginx自定義錯誤頁面和geoip塊。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM