Nginx deny all и ограничение доступа


Nginx deny all и Nginx deny ip — директивы, позволяющие запретить доступ к сайту на уровне веб-сервера. Может указываться как определенный адрес, так и подсеть. Любой клиент с адресом, попадающим в диапазон, для которого выставлен запрет, будет получать ошибку 403.



Прежде всего нужно убедиться в том, что на портах 80 и 443 на сервере работает Nginx, для этого можно использовать утилиту netstat

ограничение доступа nginx deny


Можно задать ограничение в целом для веб-сервера в nginx.conf, но чаще требуется сделать это для определенного сайта. В этом случае нужен конфигурационный файл виртуального хоста.



mcedit /etc/nginx/sites-availible/example.ru

server {

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

deny 123.123.123.0/24;
deny 91.91.91.91;

}

error_page 403 /error403.html;

}



(приведен фрагмент конфигурационного файла для связки Nginx-Apache2, может быть и любая другая конфигурация)



Директивой deny запрещается доступ клиенту 91.91.91.91 и клиентам из подсети 123.123.123.0/24.



Чтобы изменения вступили в силу нужно проверить конфигурацию и перезапустить Nginx

nginx -t



nginx -s reload


Дополнительно указали директиву error_page 403 /403error.html;



Этой директивой задается пользовательская страница ошибки 403. Клиенты, которым запрещен доступ не увидят ошибки, а увидят заранее подготовленную для них html страницу необходимого содержания. Страницу с именем 403error.html нужно разместить в корне сайта.



В логах веб-сервера можно будет увидеть сообщения с кодом ответа 403:

nginx deny all


Содержимое может быть любым. Чаще всего имеет смысл выводить на ней сообщение о том, что доступ запрещен или показывать стандартную страницу Niginx, которая открывается при обращении по IP адресу.



Указав директиву Nginx deny all можно  полностью закрыть доступ к сайту. В Nginx такие директивы прописываются если Apache не используется или если его конфигурация не позволяет задавать ограничения в файле .htaccess.

Сказать спасибо