我正在为一个客户设置一个项目的演示。在我的服务器上,我有许多使用不同技术构建的站点,它们在不同的服务器上不同的端口上运行。我使用nginx作为它们的反向代理。这个特别的应用程序是用java (spring MVC / Blazeds)构建的,并将部署在tomcat6下进行演示(可能也会投入生产)。当作为反向代理使用时,Nginx有一个很好的设置,使它能够在X-REAL-IP头中传递原始请求的IP地址。我想要做的是设置我的应用程序,或者至少设置tomcat,将X- real -IP头作为真实的请求IP地址。这个是可能的吗?
发布于 2009-07-26 23:21:33
这取决于你所说的“真实请求IP”是什么意思。如果你谈论的是从request.getRemoteAddr()返回的值,那么是的,这是可能的。
方法是在您的web应用程序中设置一个servlet筛选器,该筛选器将拦截所有URL(或者只截取您希望返回X-REAL-IP的URL),并让该筛选器将传入请求包装到HttpServletRequestWrapper的后代中,后者将覆盖getRemoteAddr()以返回X-REAL-IP值。
https://stackoverflow.com/questions/1185627
复制相似问题