無法顯示nginx自訂403

無法顯示nginx自訂403

想知道我是否可以得到一些幫助。我無法提供自訂 403 頁面。我正在使用 geoip 模組來封鎖一些 IP 位址。我需要提供一個自訂 xml 檔案作為 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;
            }
    }
...
}

相關內容