8

I want to run a Tomcat application through a regular website URL, such as www.xyz.com. I would like the root of this domain to act as the base directory for the web application, so each request to www.xyz.com/a/b/c becomes www.abc.com:8080/myApp/a/b/c. Ideally, I would be able to do this transparently and only for certain webapps.

www.abc.com:8080 should still respond to requests.

What do I need to do to make this happen?

3 Answers3

15
ProxyPass        / http://www.abc.com:8080/myApp/
ProxyPassReverse / http://www.abc.com:8080/myApp/

Read more about mod_proxy

ptman
  • 29,862
3

You can use mod_rewrite in Apache to do this. Load mod_rewrite in your Apache and in your www.xyz.com vhost add the following rule:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1

This should do the magic.

More info about mod_rewrite here.

EDIT: In order to keep the site name in the browsers, use mod_proxy as well by just appending a [P] at the end of the RewriteRule:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]

This will force Apache to act as a proxy for that URL instead of just rewriting the URL.

quanta
  • 52,423
Marco Ramos
  • 3,150
3

A simpler method for doing this is to just add a Virtual Host entry in your Apache conf file. Usually located in /etc/httpd/conf, add something like this at the end of the Virtual Host section:

<VirtualHost X.X.X.X:80>
ServerName tomcatpage.yourdomain.com
ServerAlias tomcatpage.yourdomain.com
Redirect permanent / http://tomcatpage.yourdomain.com:8080/
</VirtualHost>

Restart your Apache service and you are done.