在反向代理后面配置 Tomcat

Mr.*_*dar 5 tomcat reverse-proxy

我在我们公司的本地分支机构运行 Tomcat 7 服务器。该服务器通过端口 80 和 443 向公众开放。几天前,总部管理员更改了配置;Tomcat 现在需要通过反向代理连接。总部管理员更改了防火墙规则、更改了 DNS 条目并配置了反向代理。由于他们没有使用 tomcat 的经验,他们要求我更改配置,以便让 Tomcat 在 8080 上侦听来自反向代理的请求。

Tomcat的Connector定义如下:

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />
    <Connector
           protocol="HTTP/1.1"
           port="443" maxThreads="400"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="foobar.jks" keystorePass="foo_bar"
           clientAuth="false" sslProtocol="TLS"/>
 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" proxyName="server.company.com" proxyPort="443" />
Run Code Online (Sandbox Code Playgroud)

但是,当我从 Firefox 调用 URI 时,收到“重定向错误”,指出存在无法完成的重定向。在 Tomcat 访问日志中,有以下架构的条目:

<revere proxy internal ip> - - [14/Dec/2015:15:52:31 +0100] "GET / HTTP/1.1" 302 -
Run Code Online (Sandbox Code Playgroud)

如果我删除 proxyName 和 proxyPort 连接器属性,则会发送到 tomcat 内部服务器名称的重定向。

感谢任何解决此问题的帮助。

Juk*_*kka 7

尝试将 schema="https" 和 secure="true" 添加到端口 8080 的连接器,假设反向代理正在执行 SSL 卸载。

  • 没有“你是我个人的英雄”按钮,但如果有的话,我会花积分来推动这个答案。 (2认同)