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

时间:2014-10-01 10:36:58

标签: apache tomcat websocket connector

我在Tomcat 7前面使用Apache 2.4。我正在尝试使用网络套接字,所以我在tomcat中配置了基于http的连接器,如下所示

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

我在Apache 2.4中配置了mod_proxy和mod_proxy_wstunnel和mod_proxy_http通过“http://webserver/myapp”访问App时,Web套接字连接正常工作。

然而,也可以通过http://webserver:8009/myapp访问应用。

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

我是否可以将tomcat Connector限制为仅限Apache webserver。

2 个答案:

答案 0 :(得分:2)

你可以使用它。

<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>

在Context Path,docbase&amp;中更改相应的vaule IP地址。这至少会限制在localhost。

其他方法是在以下代码的帮助下仅在localhost上侦听tomcat。

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

答案 1 :(得分:0)

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

将您希望对全世界可用的端口列入白名单,并默认阻止其他所有端口。