Apache Tomcat mod jk virtual host
You can do that with mod_jk:
1) Enable module "mod_jk" in your Apache web servers httpd.conf. Uncomment this line, by removing the leading hash:
LoadModule jk_module modules/mod_jk.so
If you are on Linux type:
sudo apt-get install libapache2-mod-jk sudo a2enmod jk
2) Edit [TOMCAT_DIR]/conf/server.xml. Add a "jvmRoute" attribute to the "engine" element:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat">
Uncomment the AJP connector (the http connector may be disabled):
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3) Create a file "workers.properties", next to "httpd.conf". Add this content and set right ip/port:
worker.list=tomcat
worker.tomcat.type=ajp13 worker.tomcat.host=127.0.0.1
- This is the port from the AJP connector, not HTTP!
worker.tomcat.port=8009 worker.tomcat.lbfactor=10
4) Add this mapping at the end of httpd.conf and replace [PATH_TO_DIR] by the absolute path:
<IfModule jk_module>
JkWorkersFile [PATH_TO_DIR]\workers.properties JkLogFile [PATH_TO_DIR]\mod_jk.log JkLogLevel INFO JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
SetEnvIf Request_URI "/error/*" no-jk SetEnvIf Request_URI "/blog*" no-jk
JkMount / tomcat JkMount /* tomcat
</IfModule>
5) Start Tomcat and restart Httpd.
I've figured that out using mod_proxy instead of mod_jk and adding these lines :
ProxyPass / http:// SERVER_IP:8080/ ProxyPass /myapp/ http:// SERVER_IP:8080/myapp
And this line for cookies :
ProxyPassReverseCookiePath /myapp /"