我目前有一个 Tomcat + Apache HTTP 服务器设置来为我的 Java servlet 提供服务:
ProxyPass /myservice http://localhost:8080/myservice
ProxyPassRerverse /myservice http://localhost:8080/myservice
这一切都很好,除了myservice
需要知道客户端 IP 地址,由于代理的原因,该地址始终是 127.0.0.1。有没有办法获取真实IP地址? AJP 是一种选择吗?
doGet(HttpServletRequest request, HttpServletResponse response){
request.getRemoteAddr()
}
像这样做:
在阿帕奇配置中:
<Location /foo>
ProxyPass ajp://localhost:8009/foo
ProxyPassReverse ajp://localhost:8009/foo
</Location>
然后在你的 server.xml 中:
<Connector port="8009"
enableLookups="false" secure="true" URIEncoding="UTF-8"
tomcatAuthentication="false"
protocol="AJP/1.3" />
那应该可以通过一切。 AJP 协议传递信息,但 http: 不传递信息。
您可能不想要 secure="true",我使用它是因为 SSL 是在 apache 层处理的,并且我需要 tomcat 知道该连接应该被视为安全连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)