Redirect URL path to forward to tomcat servlet using Apache/mod_proxy

15,766

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.

Share:
15,766
Ish
Author by

Ish

Updated on June 26, 2022

Comments

  • Ish
    Ish almost 2 years

    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 ?

  • Ish
    Ish about 15 years
    awesome this worked with one minor correction. I had to have the following line also: NameVirtualHost *:80
  • frosty
    frosty almost 12 years
    what file do we add these virtualhost records to?
  • Muhammad Ahmad Afzal
    Muhammad Ahmad Afzal almost 12 years
    Any file that is included in the main apache conf file. There is often a separate file for each virtual host.