tomcat端口URL限制

时间:2015-06-22 15:24:40

标签: java security url tomcat port

我正在尝试配置tomcat,以便可以通过两个不同的端口访问我的应用程序,例如8080和8980,但某些URL只能通过8980访问。

原因是Web层使用8080,我不希望某些URL暴露给外部世界。我也不想配置Web服务器来限制它,因为它在应用程序和Web层之间创建了耦合。

据我所知,我可以配置两个连接器,然后以编程方式阻止基于端口的URL调用,但是:

  1. 我宁愿不对端口进行硬编码,因为它可能会被更改 server.xml中的未来
  2. 我想要各种相同的行为 组织中的应用程序,并不希望所有开发人员 需要单独实施。
  3. 我是否可以从server.xml中定义的连接器中排除某些URL模式?

    提前致谢!

1 个答案:

答案 0 :(得分:0)

在tomcat中,您可以使用不同的连接器端口和引擎设置定义多个服务,但应用程序只能由一个引擎提供服务,因此您必须多次部署应用程序。

对于像你这样的用例,tomcat太有限了,但是这个功能通常被推迟到反向代理,例如apache或nginx。

例如,您可以让您的tomcat在端口8980上运行,并配置apache以反转代理端口8080上的所有/ app调用,除了内部:

Listen 8080

<VirtualHost *:8080>
   ProxyPass /app/internal !
   ProxyPass /app http://localhost:8980/app
</VirtualHost>

请参阅http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass