Обратный прокси-сервер nginx возвращает неверный URL

Я устанавливаю программное обеспечение JIRA в контейнере Docker. JIRA слушает 127.0.0.1:8080. У меня есть мой обратный прокси на https: // имя_хоста / jira, перенаправляющий трафик с помощью этой конфигурации:

location /jira {
proxy_set_header X-Forwarded-Proto  $scheme;
proxy_set_header X-Real-IP          $remote_addr;
proxy_set_header Host               $host;
proxy_set_header X-Forwarded-Host   $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
proxy_pass       http://127.0.0.1:8080;
proxy_redirect   off;
}

Проблема в том, что я получаю 302 петли перенаправления. Когда я захожу на https: // имя_хоста / jira, меня снова и снова перенаправляют на https://hostname/jira/jira/secure/SetupMode!default.jspa. Это будет правильный URL, за исключением дополнительного фрагмента "/jira".

1 ответ

Это был бы правильный URL-адрес, за исключением дополнительного /jira фрагмент.

Вместо того, чтобы использовать location /jiraВы можете добавить прокси-сервер в качестве субдомена в новый блок сервера, например:

server {
    listen       80;
    server_name  jira.hostname;

    location / {
       proxy_set_header X-Forwarded-Proto  $scheme;
       proxy_set_header X-Real-IP          $remote_addr;
       proxy_set_header Host               $host;
       proxy_set_header X-Forwarded-Host   $host;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
       proxy_pass       http://127.0.0.1:8080;
       proxy_redirect   off;
       }
}

Если вы решили попробовать это, не забудьте обновить любые соответствующие записи DNS (или аналогичные), чтобы указать jira.hostname на правильный IP (например, 127.0.0.1).

Другие вопросы по тегам