Как я могу настроить директиву nginx proxy_pass, которая также будет включать информацию об аутентификации HTTP Basic, отправляемую на прокси-хост?
Это пример URL-адреса, который мне нужен для прокси:
http://username:password@192.168.0.5/export?uuid=1234567890
Конечная цель - разрешить одному серверу представлять файлы с другого сервера (того, на который мы проксируем), не раскрывая URI прокси-сервера. Теперь у меня это работает на 90% правильно, следуя конфигурации Nginx, найденной здесь:
http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/
Мне просто нужно добавить базовую аутентификацию HTTP для отправки на прокси-сервер
Я написал об этом некоторое время назад. Подробности смотрите здесь:
http://shairosenfeld.blogspot.com/2011/03/authorization-header-in-nginx-for.html
Например:
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_pass http://6.6.6.6:80;
proxy_set_header Authorization "Basic a2luZzppc25ha2Vk";
}
"a2luZzppc25ha2Vk" - это "king: isnaked" в кодировке base64, так что это будет работать для
http: // король: isnaked@6.6.6.6
Не стесняйтесь проверить сообщение в блоге для получения более подробной информации.
Я получил это, работая с ответом alvosu, но мне пришлось ввести слово "Basic" внутри кавычки строки base64, чтобы это выглядело так:
proxy_set_header Authorization "Basic dGVzdHN0cmluZw==";
Установите авторизацию proxy_set_header "USER_AND_PASS", где USER_AND_PASS = base64 (user: pass)
Удалите заголовок авторизации, который передается nginx с помощью proxy_set_header Authorization "";
.
Я настроил nginx для базовой аутентификации, но Authorization
заголовок передавался в proxy_pass
директива, и принимающая сторона не смогла обработать токен.
# Basic Auth
auth_basic "Private Stuff";
auth_basic_user_file /etc/nginx/.htpasswd;
location /server {
proxy_pass http://172.31.31.140:9090;
proxy_set_header Authorization "";
}
(В моем случае эта ошибка была возвращена Reason: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
)