是否有一种内置于Tomcat或Apache中的机制来区分调用本地Web服务的本地Web应用程序与直接调用Web服务?
例如,单个服务器同时具有apache和tomcat服务器,其中前端Web应用程序部署到tomcat上部署的apache和后端服务。 webapp可以使用mod_proxy通过端口80调用服务,但是直接调用web服务并检查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应用程序?
答案 0 :(得分:0)
您需要使用Tomcat的Remote IP Filter来提取X-Forwarded-For
HTTP标头中代理提供的客户端IP,并使用它来填充Tomcat的内部数据结构。然后,您将能够正确识别请求的来源。