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

问题描述 投票:0回答:1

由于各种原因,我想在一段时间的空闲时间后关闭我的服务器。我在 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 的。有什么想法吗?

apache tomcat mod-rewrite url-rewriting
1个回答
0
投票

请求到达 Tomcat 有两种可能的方式:

  1. 探测器直接向 Tomcat 端口(通常是端口 8080)发送请求。您可以通过将 Tomcat 的侦听地址限制为环回地址来解决此问题,方法是将属性

    address="127.0.0.1"
    添加到
    conf/server.xml
    中相应的 Connector 元素。或者您可以在防火墙中阻止端口 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 进行代理,但同样的推理也适用。

© www.soinside.com 2019 - 2024. All rights reserved.