Hi,
First of all, I'm using: - Tomcat 7.0.50 - Nginx 1.4.7 When I use Tomcat alone, ServletRequest.getRemoteHost() (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRe moteHost() <http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRe moteHost())> ) works fine. But when Tomcat is behind Nginx (Nginx acting as a reverse proxy), it does not. Just to make myself clear, this is the architecture I'm talking about: Client -----> Nginx (as a reverse proxy) -----> Tomcat. The problem is that ServletRequest.getRemoteHost() gives me the hostname of the proxy itself (meaning Nginx) and not that of the client. I was able to get the IP address of the visitor (and not that of the host where Nginx is running) doing this on Nginx: server { listen 80; server_name www.acme.com acme.com; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; <------- This line did the trick proxy_set_header Host $http_host; proxy_pass http://152.53.163.220:80/; } } And then inspecting the content of the "X-Forwarded-For" header in my java programming. But what do I do to obtain the remote hostname? I guess it is something similar, but I haven't found a solution. What I want to know is: - Exactly what configuration do I need in Nginx - Exactly what do I do from Java to obtain the value. Thanks in advance, Brian