В 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;