0

Tomcat 或 Apache 中是否有内置机制来区分本地 Web 应用程序调用本地 Web 服务与直接调用 Web 服务?

例如,单个服务器同时具有 apache 和 tomcat 服务器,其中前端 Web 应用程序部署到 apache 和后端服务部署在 tomcat 上。webapp 可以使用 mod_proxy 通过端口 80 调用服务,但是直接调用 webservice 并检查 tomcaat 的日志显示请求是相同的。例如:

http://127.0.0.1/admin/tools   

<Location /admin/tools>
     Order Deny,Allow
     Deny from all
     Allow from 127.0.0.1
  </Location>
ProxyPass /admin/tools http://localhost:8080/admin/tools
ProxyPassReverse /admin/tools http://localhost:8080/admin/tools

这只会阻止(或如果您删除拒绝,则允许)所有外部请求,并且两个请求在 tomcat 的日志中显示相同。

是否有推荐的机制来区分和限制直接远程服务请求与发出服务请求的 Web 应用程序?

4

1 回答 1

0

您需要使用 Tomcat 的Remote IP Filter来提取 HTTP 标头中代理提供的客户端 IP,X-Forwarded-For并使用它来填充 Tomcat 的内部数据结构。然后您将能够正确识别请求的来源。

于 2013-11-18T08:45:11.280 回答