nginx 反向代理重定向返回错误的 URL

nginx 反向代理重定向返回错误的 URL

我正在 Docker 容器中设置 JIRA Software。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://主机名/jira/jira/secure/SetupMode!default.jspa一遍又一遍。除了额外的“/jira”片段外,这将是正确的 URL。

答案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)。

相关内容