views:

2558

answers:

1

I currently have a tomcat servlet 1 running under the ROOT:

api1.myhost.com:8080/

I'm using mod_proxy and simply forwarding all requests from api1.myhost.com to this instance. This is working as of today.

I now have installed a second servlet 2 which runs under the same instance of tomcat (same IP address):

www.myhost.com:8080/servlet2

I want all requests to a new URL api2 to go to that second servlet such that:

api2.myhost.com

now gets forwarded to the second servlet instance.

I've created an A record such that api2.myhost.com points to my server IP. How do you make api2.myhost.com forward to www.myhost.com:8080/servlet2 ?

A: 

You need to make two VirtualHost's with on pointing to the first webapp, the other to the second.

<VirtualHost *:80>
    ServerName api1.myhost.com
    ProxyPass / http://api1.myhost.com:8080/
    ProxyPassReverse / http://api1.myhost.com:8080/
</VirtualHost>

<VirtualHost *:80>
        ServerName api2.myhost.com
        ProxyPass / http://www.myhost.com:8080/servlet2
        ProxyPassReverse / http://www.myhost.com:8080/servlet2
</VirtualHost>

Note that since the path will be different on tomcat than on apache, you will need to use relative URLs in your application.

Maurice Perry
awesome this worked with one minor correction. I had to have the following line also: NameVirtualHost *:80
Ish