Nginx + Tomcat7 for single webapp and multiple alias domain
Mikhail Mazursky
ash2kk at gmail.com
Thu Sep 15 09:30:28 UTC 2011
2011/9/14 tm1978 <nginx-forum at nginx.us>:
> I am thinking about using NGINX instead of Apache to deliver a Tomcat7
> webapp on Port :80 to the enduser.
>
> I have the following requirements:
>
> 1. There is a single web-app in the root with any urls (its own
> internal urlrewriting). It has various URLs pointing to it for several
> languages (and partially other content)
>
> 2. Another admin-webapp exists
>
>
> My questions are:
>
> (a) would it be a good idea to use NGINX a without Apache Http server,
> just with Apache Tomcat7 ?
> (b) how can I set this up so that the Tomcat App always know the domain
> name the user was using when calling the page?
> (c) will the tomcat app still be able to know the IPs of every user?
For this you will have to setup a RemoveIpValve [1] in your
context.xml/server.xml/context.xml.default like this:
<Valve
className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto" />
In nginx you may use configuration provided by cfsego but don't forget
to add X-Forwarded-Proto if you use https on nginx. Also you may
remove X-Real-IP header because it's not used in this setup:
>>> location / {
>>> proxy_pass 127.0.0.1:8080;
>>> proxy_set_header Host $host;
>>> proxy_set_header $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
>>> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>>> }
This way Tomcat will be aware of https and will use secure cookies for sessions.
[1]: https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_IP_Valve
> Thanks!
>
> Tobias
More information about the nginx
mailing list