Директива местоположения nginx: аутентификация происходит в неправильном блоке локаций? - PullRequest
0 голосов
/ 07 ноября 2011

Я сбит с толку.

У меня есть сервер, который в основном запускает 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 / everythingelse должен быть проксирован на http://localhost:5984/anythingelse

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

Вот конфигурацияСпасибо за понимание.

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 Ответ

0 голосов
/ 07 ноября 2011

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

...