директива о местоположении nginx: аутентификация происходит в неправильном блоке местоположения?

#authentication #configuration #proxy #nginx #location

#аутентификация #конфигурация #прокси #nginx #Расположение

Вопрос:

Я в замешательстве.

У меня есть сервер, который в основном использует couchdb через ssl (используя nginx для прокси-сервера ssl-соединения), но также должен обслуживать некоторые вещи apache.

В принципе, я хочу, чтобы все, что НЕ запускается / www, отправлялось на серверную часть couchdb. Если URL-адрес начинается с /www, то он должен быть сопоставлен с локальным сервером apache на порту 8080.

Моя конфигурация ниже работает, за исключением того, что мне также запрашивается аутентификация по путям / www. Я немного больше привык настраивать Apache, чем nginx, поэтому я подозреваю, что я что-то неправильно понимаю, но если кто-нибудь может увидеть, что не так в моей конфигурации (ниже) Я был бы очень благодарен.

Чтобы прояснить мой сценарий использования;

  1. https://my-domain.com/www/script.cgi должно быть проксировано http://localhost:8080/script.cgi
  2. https://my-domain.com/anythingelse должно быть проксировано http://localhost:5984/anythingelse

ТОЛЬКО вторая должна требовать аутентификации. Это проблема с аутентификацией, которая вызывает проблемы — как я уже упоминал, мне бросают вызов наhttps://my-domain.com/www/anything также 🙁

Вот конфигурация, спасибо за любую информацию.

 server {
        listen   443;
        ssl on;

        # Any url starting /www needs to be mapped to the root
        # of the back end application server on 8080

        location ^~ /www/ {
        proxy_pass http://localhost:8080/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

        # Everything else has to be sent to the couchdb server running on
        # port 5984 and for security, this is protected with auth_basic
        # authentication.

        location / {

        auth_basic "Restricted";
        auth_basic_user_file /path-to-passwords;

        proxy_pass http://localhost:5984;
        proxy_redirect off;
        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-Ssl on;

        }
    }
  

Ответ №1:

Максим любезно ответил на это за меня, упомянув, что браузеры, обращающиеся к значку, вызовут такое поведение и что конфигурация была правильной в других отношениях.