Базовая аутентификация мешает обратному прокси-серверу Nginx
У меня возникли проблемы с запуском различных веб-приложений за обратным прокси-сервером nginx. Попробовав такие вещи, как установка заголовков или проверка, нужно ли мне, например, пересылать /api на другой порт, я наконец нашел причину.
Эта проблема:
Если я использую базовую аутентификацию на своем обратном прокси-сервере, я сталкиваюсь со странным поведением с веб-интерфейсом, работающим за ним. Два примечательных примера - это opnsense и swizzin.
По желанию я могу войти в систему как обычно, но у меня возникают проблемы при использовании различных функций, таких как псевдоним брандмауэра. Псевдонимы, которые я уже установил, не отображаются, и я не могу добавлять новые. Если я закомментирую базовую аутентификацию в конфигурации nginx, я могу без проблем использовать все функции opnsense. См. Ниже конфигурацию nginx.
В swizzin(сценарий развертывания seedbox) я не могу войти в панель управления. Я подозреваю, что причина этого как-то связана с php, но я точно не знаю. Сайт входа в систему для swizzin использует как минимум php, и снова все работает, удалив только две основные строки авторизации в конфигурации сервера nginx.
Конфигурация сервера Nginx:
(сертификат ssl работает и определен в другом месте)
server {
listen 443;
listen [::]:443;
server_name opnsense.example.com;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
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-Proto $scheme;
proxy_pass https://192.168.3.1:443/;
}
}