LINUX.ORG.RU

Nginx. Авторизация по определенной ссылке

 ,


0

3

День добрый! Подскажите пжлста, как можно сделать следующее: Есть сайт http://example.org - на него доступ по паролю (auth_basic) Необходимо убрать авторизацию для раздела http://example.org/_v1/

Как это можно сделать?

Ответ на: комментарий от MrClon

Спасибо за ответ. Подправил конфиг

location /_v1 {
    auth_basic "off";
    allow all;
    proxy_pass          http://example-dev;
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP $remote_addr;

}

При обращении http://example.org/_v1/ окно авторизации все равно выходит, после нескольких нажатии Отмена загружается страница, почему так? И еще вопрос: Пытаюсь проистись по ссылкам, выходит окно авторизации. Это можно как то победить?

genesys ()
Ответ на: комментарий от MrClon

Оба варианта дают один результат, к сожалению не тот который нужен

genesys ()
Ответ на: комментарий от MrClon
cat conf.d/example-dev
# Common
location / {
    proxy_pass          http://example-dev;
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP $remote_addr;

    access_log  /var/log/nginx/example-dev.detail.log access buffer=4k flush=2s;
    error_log /var/log/nginx/example-dev.error.log error;

}

location /_rp {
    auth_basic off;
    allow all;
    proxy_pass          http://example-dev;
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP $remote_addr;

    access_log  /var/log/nginx/example-dev.detail.log access buffer=4k flush=2s;
    error_log /var/log/nginx/example-dev.error.log error;
}

------------------------------------------------------

cat conf.d/example-dev.conf
# context: http

upstream example-dev {
    server      ip_addr:80;
    keepalive   16;
}

server {
  listen        443 ssl http2;
  server_name   example.org;

  ssl_certificate <path to cert>;
  ssl_certificate_key <path to cert>;

  auth_basic "Restricted";
  auth_basic_user_file /usr/local/openresty/nginx/conf/conf.d/htpasswd.common;

  include /usr/local/openresty/nginx/conf/conf.d/common-ssl;
  include /usr/local/openresty/nginx/conf/conf.d/example-dev;

}

genesys ()
Ответ на: комментарий от genesys

Чёт я ХЗ. Бэкэнд авторизацию точно сам не спрашивает?
Что в логах при ненужном запросе авторизации? А если включить дебаг (ЕМНИП может подобиться доустановка пакетов, а то и пересборка, если у тебя самосбор).

allow all по идее лишнее. Зачем у тебя два локейшена раздельно логируются в один лог? Почему-бы не перенести access_log и error_log в server?

MrClon ★★★★★ ()
Ответ на: комментарий от genesys

При обращении http://example.org/_v1/ окно авторизации все равно выходит, после нескольких нажатии Отмена загружается страница, почему так?

Проверь обращения к ресурсам. У тебя css или js могут подгружаться с http://example.org .

Tark ★★ ()
Ответ на: комментарий от genesys

nginx на конфиг не ругается?

ЕМНИП, до /_rp у тебя не дойдёт, все запросы пойдут в /

router ★★★★★ ()
Ответ на: комментарий от genesys

Потому что браузеры очень «умные» и запрашивают /favicon.ico, даже если нигде не прописано.
Ну и как выше сказали - скрипты и css. Все это надо в отдельные локейшны и отключать для них авторизацию.

iSage ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.