Назад | Перейти на главную страницу

Белый список NginX по IP и имени хоста. В противном случае HTTP auth

В Apache у нас была настройка, в которой мы могли иметь http-аутентификацию для всех наших веток разработки, если только имя хоста не совпадало с нашим белым списком или если IP посетителя не совпадал с нашим белым списком.

Вот что у нас было:

SetEnvIf Host master.oursite.co GrantAccess
SetEnvIf Host 1429-new-checkout.oursite.co GrantAccess

allow from 213.141.134.200
allow from 46.159.236.22

Как я могу сделать это на NginX способом, требующим минимальной настройки каждый раз, когда я хочу добавить / удалить доступ?

У нас есть локальные и удаленные разработчики, а также общедоступные веб-сайты, которые нам нужно показать клиентам. Это то, что я использую.

Включите файл с именем вроде auth.conf в конфигурацию вашего vhost

#auth check - satisfy if ip or key match
satisfy any;
allow 95.139.104.184/29;
allow 95.55.120.28/32;
deny  all;
#auth file
auth_basic           "closed site";
auth_basic_user_file /etc/nginx/htpasswd;

Обязательно создайте файл / etc / nginx / htpasswd

sudo htpasswd -c /etc/nginx/htpasswd exampleuser

Для соответствия на основе имени хоста вы можете использовать сторонний модуль, например описано здесь используя это rDNS

rdns_allow developers\.example\.com;