Как отключить auth_basic для некоторых путей в nginx?

Включил aut_basic для всех сайтов так:
auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/auth.htpasswd;

Теперь хочу отключить для некоторых путей.
Например для /bitrix/admin/*
Пробую так:
location / {
    root              /var/www/web/sites;
    try_files         /$host/ @default_host;
    proxy_pass        http://127.0.0.1:8080;
    proxy_redirect    http://127.0.0.1:8080/ /;
}
location /bitrix/admin/ {
    auth_basic off;
}

Вообще перестает работать /bitrix/admin/ - я так понимаю потому что все что в location /bitrix/admin/ не добавляется а просто перезаписывает location /

Делаю так:
location / {
    root              /var/www/web/sites;
    try_files         /$host/ @default_host;
    proxy_pass        http://127.0.0.1:8080;
    proxy_redirect    http://127.0.0.1:8080/ /;
}
location /bitrix/admin/ {
    root              /var/www/web/sites;
    try_files         /$host/ @default_host;
    proxy_pass        http://127.0.0.1:8080;
    proxy_redirect    http://127.0.0.1:8080/ /;
    auth_basic off;
}

Все начинает работать, но опять требует авторизации. Да как сделать-то?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
grantur5707
@grantur5707
Full Stack Web Developer
Вас нужно правильно переопределить директиву auth_basic off:
location / {
    root              /var/www/web/sites;
    try_files         /$host/ @default_host;
    proxy_pass        http://127.0.0.1:8080;
    proxy_redirect    http://127.0.0.1:8080/ /;
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/auth.htpasswd;
}

location /bitrix/admin/ {
    proxy_pass        http://127.0.0.1:8080;
    proxy_redirect    http://127.0.0.1:8080/ /;
    auth_basic off;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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