我正在运行TOMCAT服务器。出于安全原因,我必须仅限制对localhost的访问,但是必须可以从外部(任何IP)访问一个应用程序。我尝试使用放置在server.xml中的阀门,但只能阻止对特定功能/应用程序的访问,例如主机管理器。
如何限制除一个应用程序外的所有应用程序?
编辑: server.xml中的这一行会阻止除localhost外的所有内容:
<Server>
<Service>
<Engine>
<Host>
...
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
</Host>
</Engine>
</Service>
</Server>
如何为必须从外部访问的一个应用程序添加例外?
首先感谢您的帮助:-)
答案 0 :(得分:0)
您需要2个目录来存储不同的Web应用程序,并且最小配置如下所示,其中serverhost是您的网络上的服务器名:
<Service name="internal">
<Connector port="8081" protocol="HTTP/1.1" address="localhost" />
<Engine name="Engine1internal" defaultHost="localhost">
<Host name="localhost" appBase="webapps1"></Host>
</Engine>
</Service>
<Service name="exposed">
<Connector port="8080" protocol="HTTP/1.1" address="192.168.1.2"/>
<Engine name="Engine2exposed" defaultHost="serverhost">
<Host name="serverhost" appBase="webapps2"></Host>
</Engine>
</Service>
当然,如果要保留webapps目录,只需创建一个目录即可存储另一个应用程序。我没有进行测试,但改用了其他配置,因此如有必要,请随时评论/编辑我的答案。