如何在代理后面的tomcat上运行的servlet知道浏览器发送请求的服务器名称

时间:2014-01-20 18:49:07

标签: tomcat servlets proxy jira reverse-proxy

我有以下安排:浏览器 - >转发代理 - >云 - > (apache服务器+ jira web应用程序)。 出于实验目的,我使用域名fwdproxy.foo.com转到转发代理,然后转发代理将其更改为jira.foo.com并转发连接。当我jira页面加载时,我得到错误 “JIRA报告它在主机名'jira.foo.com'上运行,它与用于运行这些诊断的主机名'fwdproxy.foo.com'不匹配。这已知导致JIRA构建使用不正确的主机名的URL,这将导致仪表板中的错误,以及其他问题

在进一步调试时,我看到了这一点 com.atlassian.gadgets.dashboard.internal.diagnostics.UrlHostnameMismatchException:检测到的URL主机名'jira.foo.com'与预期的主机名fwdproxy.foo.com不匹配。

jira网络应用程序如何知道浏览器使用的主机名。由于转发代理创建了完全不同的http连接,因此jira不应该知道浏览器在转发代理后面做了什么。请提供输入。谢谢

1 个答案:

答案 0 :(得分:1)

只有2个想法:
您可以配置JIRA,为他提供公共URL(管理/全局配置/基本URL) 我想JIRA将此字段与HOST http标头进行比较,或使用antoher机制,XSS保护,也许是atlassian.xsrf.token?