【问题标题】:Apache 2 HTTPS reverse proxy with two Tomcat instances?带有两个 Tomcat 实例的 Apache 2 HTTPS 反向代理?
【发布时间】:2017-09-25 07:06:57
【问题描述】:

我在为 Tomcat 8 配置 Apache 2 反向代理时遇到问题。

我的服务器运行了两个 Tomcat 实例,旧的 Tomcat 7 和最近安装的 Tomcat 8。 Tomcat 7 在其 server.xml 中配置了一个 HTTP 连接器,它使用端口 8080,配置如下所示:

    <Connector port="8080" protocol="HTTP/1.1"
           maxThreads="200"
           clientAuth="false"
           URIEncoding="UTF-8"
           useBodyEncodingForURI="true"
           scheme="http"/>

Tomcat 8 在其 server.xml 中配置了一个 HTTP 连接器,它使用端口 8765,与上面的配置相同,只是端口不同。

Tomcat 7 有一个在 webapps/api 中运行的 REST API

Tomcat 8 有一个在 webapps/anotherapi 中运行的 REST API

服务器也有 Apache 2 作为反向代理,它监听端口 443。ssl.conf 中的反向代理配置部分如下所示:

<VirtualHost _default_:443>

ServerName my.server.com:443

ProxyPreserveHost On

RequestHeader set X-Forwarded-Proto "https"

ProxyRequests Off

SSLProxyVerify none

SSLProxyCheckPeerCN off

ProxyPass /api http://localhost:8080/api
ProxyPassReverse /api http://localhost:8080/api

ProxyPass /anotherapi http://localhost:8765/anotherapi
ProxyPassReverse /anotherapi http://localhost:8765/anotherapi

#configuration truncated

</VirtualHost>

Tomcat 7及其反向代理配置在服务器上已经有一段时间了,可以正常工作,但是新的Tomcat 8出现问题。

当我尝试在浏览器上获取 https://my.server.com/api/someresource 时,我从 Tomcat 7 上的 REST API 获得了预期的响应,但是当我尝试访问 https://my.server.com/anotherapi/someresource 时,我得到了从 Tomcat 7 返回的 HTTP 状态 404 页面,而不是预期的来自 Tomcat 8 的响应。

任何想法为什么会发生这种情况?在处理两个 Tomcat 实例时我还需要做些什么吗?

SSL 模块已加载到 Apache 中,我的证书应该没有问题。

【问题讨论】:

    标签: tomcat configuration apache2 reverse-proxy


    【解决方案1】:

    我自己想出来的。我还有一个旧的 ProxyPass 配置(在此处被截断),在访问服务器的根目录 (https://my.server.com/) 时返回 localhost:8080。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2015-08-07
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      相关资源
      最近更新 更多