Невозможно отобразить nginx custom 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-файл имеют правильное разрешение. Я могу получить доступ к файлу error.xml, если отключу блок geoip. Пожалуйста, дайте мне знать, если у вас есть какие-либо мысли, идеи или какую другую информацию я могу предоставить.
Спасибо за вашу помощь
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;
}
}
...
}