无法显示 nginx 自定义 403

无法显示 nginx 自定义 403

想知道我是否可以得到一些帮助。我无法提供自定义 403 页面。我正在使用 geoip 模块来阻止一些 ip 地址。我需要提供自定义 xml 文件作为 403。我的问题是,即使我已经按照说明设置了所有内容(我认为),我仍然会得到默认的 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;
            }
    }
...
}

相关内容