
助けていただけないでしょうか。カスタム 403 ページを提供できません。geoip モジュールを使用して、いくつかの IP アドレスをブロックしています。403 としてカスタム XML ファイルを提供する必要があります。問題は、指示に従ってすべてを設定したにもかかわらず (そう思うのですが)、デフォルトの nginx 403 ページが表示されることです。/etc/nginx/sites-enabled/default を確認して、何が間違っているのか教えてください。
.....
###redirect IP_1
geo $bad_user {
default 0;
bad.ip.1/32 1;
bad.ip.2/32 1;
}
server {
....
####custom 403 error page for ip block
error_page 403 /error.xml;
location = /error.xml {
root /var/www/static;
allow all;
}
####redirect IP_2
if ($bad_user) {
return 403;
}
ディレクトリと xml ファイルに適切な権限があることを確認しました。geoip ブロックを無効にすると、error.xml ファイルにアクセスできるようになります。ご意見、アイデア、または私が提供できるその他の情報があればお知らせください。
ご協力いただきありがとうございます
答え1
問題を解決できました。エラー ページと「不正なユーザーの場合」はサーバー ブロックに必要です。これが他の誰かの役に立つことを願っています。ご協力ありがとうございました。
server {
listen 80; ## listen for ipv4
listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
root /var/www;
index index.html index.htm;
allow all;
error_page 403 /error.xml;
if ($bad_user) {
return 403;
}
}
...
}