为什么我的 glassfish 服务器重定向到另一台服务器?

Why is my glassfish server redirecting to another server?

我从一位实际上已经去世的前任开发人员那里继承了一个工作项目,否则我会问他怎么了...

我在两台不同的机器上有两个 glassfish 服务器 运行 运行 Ubuntu,侦听 HTTP 8080 和 HTTPS 8081。在两个系统上都有重定向端口 80 -> 8080 的 iptables 条目和端口 443 -> 8081 这似乎有效。在他们每个人身上,我都是 运行 一个 JSF 应用程序。

在服务器 A 上,当我导航到 http://servera or http://servera:8080 or http://servera/app1 or http://servera:8080/app1, it redirects to https://servera/app1 时。这很好,因为我想使用 HTTPS 并且我希望服务器默认使用那里的 Web 应用程序 运行。

在服务器 B 上有些不同:

当我导航到 http://serverb, http://serverb:8080, https://serverb, or https://serverb:8081, I get redirected to http://servera (wtf?)

当我导航到 http://serverb:8080/app2 时,我到达了 serverb 上的 app2 运行。 当我导航到 https://serverb:8081/app2 时,我通过 https 到达 serverb 上的 app2 运行。

我比较了两个服务器之间的 glassfish 配置,我没有发现 HTTP 服务或网络配置部分之间有任何明显差异。我还在 serverb 上 grepped domain.xml "servera",但没有发现任何事件。

在 serverb 上,使用 lsof -i :portnumber 我看到唯一监听 8080 和 8081 的是我的 glassfish 服务器,80 或 443 没有任何监听。

我正在寻找一些关于从哪里开始解决两个问题的提示: 1) 我需要在 glassfish 配置中更改什么,以便 serverb 像 servera 一样从 http -> https 重定向?

2) 当我没有在 url 中的主机名后指定应用程序时,为什么 serverb 会重定向到 servera?是否有一些配置我可以查看外部 glassfish 和 iptables 以了解为什么会发生这种情况?也许我在 glassfish 配置中遗漏了什么?

最终发现在 serverb 上,glassfish 域的 docroot 文件夹 (glassfish4/glassfish/domains/domain1/docroot/index.xhtml) 中有一个 index.xhtml,其中包含如下一行:

<meta http-equiv="refresh" content="0; http://servera/app1

... 并且正在执行重定向。我无法通过浏览器判断,但是当我检查 curl -v http://serverb 的输出时,我发现正在加载一个中间页面。