Если нужно чтобы Nginx авторизовался на backend’е


Задача:

вывести страницу защищенную HTTP Basic Authentication без ввода пароля пользователем.

 Например, нужно вывести информацию из системы мониторинга Nagios в документе Confluence, используя макрос Html include replace

Решение:

Можно использовать возможности Nginx как frontend proxy. Достаточно прописать директиву для backend в конфиге nginx:

proxy_set_header	Authorization	"Basic [user:password encoded by Base64]";

где [user:password encoded by Base64] получается из вывода команды:

echo "user:password" | base64

Пример конфигурации для nginx:

server {
    server_name frontend.example.com;
    listen 80;
location /nagios {
        proxy_pass http://nagios.example.com/;
        proxy_set_header	Authorization	"Basic dXNlcjpwYXNzd29yZAo=";
        proxy_redirect http://nagios.example.com/ /nagios;
    }

При запросе http://frontend.example.com/nagios/ Nginx запросить http://nagios.example.com/ автоматически авторизуясь с логином user и паролем password

 

Поблагодарить:

Оставьте комментарий

Ваш e-mail не будет опубликован.