Бувають випадки, коли потібно обмежити доступ до сайту для окремих IP або підмереж, або навпаки – залишити доступ тільки для обраних IP. Найзручніше обмежити доступ можна через iptables або .htaccess. У цьому дописі розглянемо як обмежити доступ ще в один спосіб – через веб-сервер NGINX.
nginx [engine x] – це HTTP-сервер та зворотний проксі-сервер, поштовий проксі-сервер, а також TCP/UDP проксі-сервер загального призначення. Має широке розповсюдження через свою швидкість, надійність та легкість в налаштуванні.
Файл конфігурації NGINX знаходиться в директорії: /etc/nginx/nginx.conf
Блокуємо 192.168.0.1 для доступу до сайту hosting-service.com.ua:
server {
server hosting-service.com.ua;
deny 192.168.0.1;
allow all;
}
Блокуємо все окрім 192.168.0.1 для доступу до сайту hosting-service.com.ua:
server {
server hosting-service.com.ua;
deny all;
allow 192.168.0.1;
}
Блокуємо кілька IP (192.168.0.1, 192.168.0.10) для доступу до сайту hosting-service.com.ua:
server {
server hosting-service.com.ua;
deny 192.168.0.1;
deny 192.168.0.10;
alow all;
}
Блокуємо підмережу 192.168.0.1/24 для доступу до сайту hosting-service.com.ua:
server {
server hosting-service.com.ua;
deny 192.168.0.1/24;
allow all;
}
Після внесення змін до файлу конфігурації, перевірте правильність синтаксису командою: nginx -t
Має бути:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Якщо ok, то перезапускаємо nginx щоб наші зміни набрали силу: service nginx restart