如何过滤请求以便apache处理它们而不是tomcat?

时间:2018-05-07 17:17:40

标签: apache tomcat url-rewriting mod

出于各种原因,我想在一段闲置时间后关闭我的服务器。我在Debian 4.9.88上运行Tomcat 8.5.29和Apache2(不确定版本)。我写了一个脚本来查看Tomcat最后一次访问的时间。我在服务器上只有一个应用程序,它位于“http://hostname/source/”。我的问题是那里有很多网络服务器漏洞,而且我的请求流量不断增加: “GET / HTTP / 1.1” “POST / GponForm / diag_Form?images / HTTP / 1.1” “GET /jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.system%3Aservice%3DMainDeployer HTTP / 1.1” “POST / user / register?element_parents = account / mail /%23value& ajax_form = 1& _wrapper_format = drupal_ajax HTTP / 1.1”

我想做的是阻止任何不以“/ source”开头的东西甚至到达tomcat。我认为Apache中的重写或其他东西可以做到,但我不确定请求是如何首先进入Tomcat的。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

请求有两种方法可以访问Tomcat:

  1. 探针直接向Tomcat端口(通常是端口8080)发送请求。您可以通过将属性address="127.0.0.1"添加到conf/server.xml中的相应Connector元素,将Tomcat的侦听地址限制为环回地址来解决此问题。或者您可以阻止防火墙中的端口8080。

  2. 请求通过Apache中的反向代理配置从Apache转发到Tomcat。这意味着在其中一个Apache配置文件中有一行如下所示:

    ProxyPass / http://127.0.0.1:8080/

    如果为两个参数添加显式路径前缀,则可以限制将哪些请求传递给Tomcat:

    ProxyPass /source http://127.0.0.1:8080/source

    这可确保只有以“/ source”开头的请求才会转发到Tomcat。

    某些Apache配置使用AJP协议而不是HTTP进行代理,但同样的原因也适用。

相关问题