Musíte tu aplikaci na Tomcatu nastavit tak, aby používala contextPath "/" a byla svázaná se zvolenou doménou. Pokud nemáte nějaký vážný důvod, proč před tím Tomcatem máte Apache, použijte samotný Tomcat a konfiguraci Apache pak nemusíte řešit.
Apache vyhodit nemuzu, potrebuju na stejnem serveru provozovat nekolik PHP aplikaci a mam jen jednu IP.
Já to tedy téměř nepoužívám, ale logicky - název virtuálního hosta by neměl být
localhost, ale jméno domény (jak na straně Apache tak Tomcatu).
ProxyPass / http://neco.nekde.cz:8081/
Jak by jinak ten Tomcat poznal, co má obsloužit za virtuál?
v /etc/tomcat7/server.xml mam aktualne (+ vychozi veci co tam byly):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8"
proxyName="neco.nekde.cz"
proxyPort="80"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="neco.nekde.cz" unpackWARs="true" autoDeploy="true" appBase="webapps/MOJEAPP">
<Alias>www.neco.nekde.cz</Alias>
<Context path="/" docBase="MOJEAPP" debug="0" reloadable="false"/>
</Host>
Virtualhost apache vypada nasledovne:
<VirtualHost *:80>
ServerName neco.nekde.cz
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8081/MOJEAPP/ # zkousel jsem i port 8080
ProxyPassReverse / http://localhost:8081/MOJEAPP/
</VirtualHost>
pokud nyni vlezu na adresu
http://neco.nekde.cz vidim uvodni stranku, ale jen cisty text. Ve zdrojaku stranky vidim vsechny odkazy ve tvaru:
<script src="/MOJEAPP/static/js.js"></script>
vse vypisuju pres
<c:outNemel by to resit prave radek <Context path="/" docBase="MOJEAPP" debug="0" reloadable="false"/>?
Nektere navody doporucuji nazvat aplikaci ROOT, jenze tak muze byt jen jedna.