将Tomcat http连接器限制到Apache服务器

将Tomcat http连接器限制到Apache服务器,apache,tomcat,websocket,connector,Apache,Tomcat,Websocket,Connector,我在Tomcat7前面使用Apache2.4。我正在尝试使用web套接字,所以我在tomcat中配置了基于http的连接器,如下所示 <Connector port="8009" protocol="HTTP/1.1" proxyPort="80" maxPostSize="10485760" redirectPort="8443" URIEncoding="UTF-8" /> 我已经在Apache2.4Web套接字连接中配置了mod_proxy和mod_proxy_wst

我在Tomcat7前面使用Apache2.4。我正在尝试使用web套接字,所以我在tomcat中配置了基于http的连接器,如下所示

<Connector port="8009"  protocol="HTTP/1.1" proxyPort="80" maxPostSize="10485760" redirectPort="8443" URIEncoding="UTF-8"  />

我已经在Apache2.4Web套接字连接中配置了mod_proxy和mod_proxy_wstunnel以及mod_proxy_http,当通过“
http://webserver/myapp

但是,也可以通过
http://webserver:8009/myapp

我希望我的应用程序只能通过Apache Web服务器访问(
http://webserver/myapp
)而不是直接使用tomcat(
http://webserver:8009/myapp
)。我不能使用AJP模块(mod_proxy_AJP或mod_jk),因为AJP模块不支持web套接字


是否有一种方法可以将tomcat
连接器
仅限于Apache Web服务器。

在服务器上使用防火墙。通过这种方式,您不仅可以使tomcat不可用,还可以使任何其他碰巧在该机器上打开端口的进程不可用

白名单列出您希望在世界范围内可用的端口,并默认为阻止每个其他端口。

您可以使用此选项

<Context path="/manager" docBase="manager" reloadable="true" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteIpValve"/>
      <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="<your IP regex>"/>
</Context>

更改上下文路径、docbase和IP地址中的相应值。这至少会限制到localhost

另一种方法是在下面代码的帮助下,仅在本地主机上侦听tomcat

<Connector port="8009" address="127.0.0.1" 

Apache在Windows上运行,此服务器解决方案作为产品销售,因此添加防火墙是不可取的。不可能限制tomcat连接器对Apache的访问吗?此外,我不希望tomcat即使在localhost上也能被直接访问。Tomcat应该如何确定连接的起始位置(但在本地主机上)?如果你销售服务器产品,应该有一些关于如何捆绑它的文档。即使Windows也有防火墙,但是,在不将Tomcat直接暴露给外部世界的情况下,我无法将web套接字与Tomcat和Apache一起使用!