2015-09-08 21:22 GMT+02:00 Brian <brian...@emailbb.com>: > 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.
Why not do you perform a reverse DNS lookup by code ? Something like : InetAddress addr = InetAddress.getByName("xx.xx.xx.xx"); String host = addr.getCanonicalHostName(); System.out.println(host); You only need to extract 'X-Forwarded-For' header from request and execute that piece of code Regards > > > > Thanks in advance, > > > > Brian > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org