@Ozymandis
зелень

Всем серверная авторизация с помощью директивы auth_basic, кроме одного ip?

Всем Привет
Только недавно начал изучать Nginx

Подскажите как сделать, чтобы всем требовалась предварительная авторизация с помощью директивы auth_basic,
Кроме клиентов с определенным ip (например 11.22.33.44)

Вот так хотел сделать,
логины и пароли буду хранить в /etc/nginx/passwrds;
if ($remote_addr != 11.22.33.44) {
                auth_basic "Oops(";
                auth_basic_user_file /etc/nginx/passwrds; 
            }

но как видите, это неправильная работа с синтаксисом nginx

вот сам конфиг сайта
site.conf

server {
        listen 80;
        server_name _;

        server_tokens off;
        proxy_set_header X-Forwarded-For $remote_addr;

location / {

            allow 11.22.33.44;
            deny  all;

            proxy_pass         http://127.0.0.1:8000;
            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-Host $server_name;
            proxy_read_timeout  1200s;

            # used for view/edit office file via Office Online Server
            client_max_body_size 0;

            access_log      /var/log/nginx/ access.log;
            error_log       /var/log/nginx/ error.log;
        }

  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
fzfx
@fzfx
18,5 дм
...
location / {
            satisfy any;
            allow 11.22.33.44;
            allow 22.33.44.55;
            deny  all;
            auth_basic "Oops(";
            auth_basic_user_file /etc/nginx/passwrds; 

            proxy_pass         http://127.0.0.1:8000;
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы