在您的Tomcat server.xml配置文件中,
编辑 http连接器以包含属性:proxyPort、proxyName - 使其类似于:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
proxyPort="80"
proxyName="url.domain.clients.use.for.your.webapp"
/>
- proxyPort="80" -- 使 Tomcat 将数据返回给您的 Apache 代理
- proxyName="url.domain.clients.use.for.your.webapp" - 使 Tomcat 将 url 返回给您的用户客户端应处理的 Apache 代理,而不是他们无法访问的 tomcat_server.com
以下是一些提到它的旧 Tomcat 文档:
代理名称
如果在代理配置中使用此连接器,请配置此属性以指定要为调用 request.getServerName() 返回的服务器名称。有关详细信息,请参阅代理支持。
代理支持
当 Tomcat 在代理服务器后面运行时,可以使用 proxyName 和 proxyPort 属性。这些属性修改返回给调用 request.getServerName() 和 request.getServerPort() 方法的 Web 应用程序的值,这些方法通常用于构造重定向的绝对 URL。如果不配置这些属性,返回的值将反映从代理服务器接收连接的服务器名称和端口,而不是客户端将原始请求定向到的服务器名称和端口。
我解决了类似的需求,让 Tomcat 仅在其本地主机上侦听:
Tomcat 9 连接器如何监听 127.0.0.1 反向代理到 Win。具有私有 ServerName 的 Apache 2.4