Я пытаюсь отобразить ошибочную страницу в /temp/www/error403.html каждый раз, когда 403 ошибки происходят.
Это должно быть то, каждый раз, когда пользователь пытается получить доступ к сайту через https (ssl), и это - IP, находится в blovkips.conf файле, но в данный момент он все еще показывает ошибочную страницу nginx по умолчанию. У меня есть тот же код для моего другого сервера (без любого блокирования), и это работает.
Это блокирует IP от доступа к пользовательским 403 страницам? Раз так, как я заставляю это работать?
server {
# ssl
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/site.in.crt;
ssl_certificate_key /etc/nginx/ssl/site.in.key;
keepalive_timeout 70;
server_name localhost;
location / {
root /temp/www;
index index.html index.htm;
}
# redirect server error pages to the static page
error_page 403 /error403.html;
# location = /error403.html {
# root /temp/www;
# }
# add trailing slash if missing
if (-f $document_root/$host$uri) {
rewrite ^(.*[^/])$ $1/ permanent;
}
# list of IPs to block
include blockips.conf;
}
Править: Исправленные error_page кодируют от 504 до 403, но у меня все еще есть та же проблема
Я много гуглил перед тем, как приехать сюда, но сделал еще кое-что прямо сейчас, через 5 минут я получил свой ответ: P
Похоже, я не единственный человек, у которого есть эта проблема:
error_page 403 /e403.html;
location = /e403.html {
root html;
allow all;
}
http://www.cyberciti.biz/faq/unix-linux-nginx-custom-error-403-page-configuration/
Похоже, я был прав, думая, что доступ к моей странице с ошибкой блокируется .
Похоже, что в указанной конфигурации есть ошибка, поскольку она отправляет только код ошибки 503 («служба недоступна») на настраиваемую страницу, поэтому для 403 («запрещено») вы, вероятно, захотите использовать:
error_page 403 /error403.html
Проблема может заключаться в том, что вы пытаетесь передать ошибку 403 «Запрещено» с веб-сервера, доступ к которому им запрещен. Nginx рассматривает директиву error_page как внутреннее перенаправление. Таким образом, он пытается подключиться к серверу https://example.com/error403.html , что также запрещено.
Таким образом, вам нужно сделать так, чтобы страница с ошибкой не обслуживалась по протоколу https следующим образом:
error_page 403 http://example.com/error403.html
или добавить необходимые параметры «доступ разрешен» в место для пути к странице с ошибкой. Способ проверить это - получить прямой доступ к странице /error403.html. Если вы не можете получить доступ таким образом, это не сработает, когда кто-то получит фактическую ошибку 403.