Я сбит с толку.
У меня есть сервер, который в основном запускает couchdb поверх ssl (использует nginx для прокси-соединения ssl), но также должен обслуживать некоторые вещи Apache.
В основномЯ хочу, чтобы все, что НЕ запускается / www, отправлялось на серверную часть couchdb.Если URL-адрес НАЧИНАЕТСЯ начать с / www, то он должен быть сопоставлен с локальным сервером Apache через порт 8080.
Моя конфигурация ниже работает за исключением того, что мне также предлагается аутентификация по путям / www.Я немного больше привык к настройке Apache, чем nginx, поэтому я подозреваю, что что-то неправильно понимаю, но если кто-нибудь увидит, что не так из моей конфигурации (ниже), я был бы очень признателен.
Чтобы уточнить мой сценарий использования:
- https://my -domain.com / www / script.cgi следует проксировать на http://localhost:8080/script.cgi
- 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;
}
}