I have WAMP installed with Apache at port 80 and Tomcat installed at port 8080.
So, I access my php projects from localhost/
and java projects at localhost:8080/
Can I install or map Tomcat to a better address like localhost/java/
or betterstill a pseudoname like javahost
instead of localhost
I have added a line to the HOSTS file
127.0.0.1:8080 javahost
But that doesn't work. And I cannot ping to javahost. I guess its not supposed to work that way.
Is there a way out?
WAMPSERVER 2 with APACHE 2.2.11
TOMCAT 6.0.29
WINDOWS XP PRO SP3
Update:
Thanks to @bindbn
I changed the hosts file to
127.0.0.1 javahost
I enabled proxy module in Apache
Then added this to the end of the httpd.conf
<VirtualHost javahost>
ProxyPreserveHost On
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
</VirtualHost>
From using Virtualhost & mod_proxy together
Following which javahost
also loads the php website hosted at port 80 instead of the localhost:8080 website.
Update
Found this on the interwebs http:// confluence.atlassian.com/display/CONF30/Using+Apache+with+mod_proxy
# Put this in the main section of your configuration (or desired virtual host, if using Apache virtual hosts)
ProxyRequests Off
ProxyPreserveHost On
#<Proxy *>// changed to below.
<Proxy javahost:80>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /confluence http://localhost:8080/confluence
ProxyPassReverse /confluence http://localhost:8080/confluence
<Location /confluence>
Order allow,deny
Allow from all
</Location>
Changing confluence to java (and changing localhost:8080/confluence to to localhost:8080)gives me @lladnar 's answer, which works well in redirecting localhost/java and javahost/java to localhost:8080, but can this not be used to redirect ONLY javahost to localhost:8080 and keep localhost to read from port 80?
I also changed the lines to,
<Proxy javahost:80>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Now javahost redirects to localhost:8080 but localhost also redirects to localhost:8080 and so I cannot access the localhost:80 port which houses my php website.
Where am I going wrong? Any Ideas?
My aim is to redirect javahost (or a different IP ) to localhost:8080, keeping localhost:80 accessible from localhost and 127.0.0.1 and my pc's intranet IP
Updated with Answer
This worked. I added this to the end of httpd.conf. proxy module and proxy http module are on. My Workstation had a single LAN IP (192.168.1.4). I added another IP(192.168.1.5) and used that IP instead of the javahost name.Now 192.68.1.5 open my Tomcat website and 192.168.1.4 opens my PHP website.
<VirtualHost 192.168.1.5>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Thanks to @Caleb for the idea of multiple IPs. Thanks to @lladnar and @bindbn for the Proxy code!(I wish I could split the answer credit and since I have no rep(rep 6), I cannot give any rep)
Problems with current setup
Currently people on the intranet use http:// workstationname/ to access the intranet PHP website. They will now have to use the ips for the JAVA and PHP website. Is there a way to bind a specific hostname to a specific IP address
Best Answer
Your hosts file is for address lookups, not forcing routing to a specific port.
You haven't specified your platform here, so these are general possible solutions: