Our goto server for Enterprise J2EE apps is Tomcat. Frequently we come across the requirement of deploying multiple web applications on the same Tomcat and mapping different subdomains to each web app.For example,
<pre>crm.mydomain.com to an app deployed in webapps/crm mobilerp.mydomain.com to an app deployed in webapps/erp</pre>
We usually do this with virtual host facility available in Tomcat.
<pre><Host name="crm" appBase="webapps"> <Context path="" docBase="crm/"/> </Host> <Host name="erp" appBase="webapps"> <Context path="" docBase="erp/"/> </Host></pre>
Now if you setup your DNS with the 2 subdomain entries, the sub-domains will be forwarded to the appropriate web apps by Tomcat.
We usually deploy Tomcat in a cluster in production using Apache and mod_jk. We need to do the following for that:
<pre><VirtualHost crm.mydomain.com:80> ServerName crm.mydomain.com JkMount / tomcat JkMount /* tomcat </VirtualHost> <VirtualHost erp.mydomain.com:80> ServerName erp.mydomain.com JkMount / tomcat JkMount /* tomcat </VirtualHost></pre>
Ofcourse this is http. For https we do our usual SSL steps. Your worker.properties will look something like this:
<pre>worker.list= tomcat,status worker.tomcat1.type=ajp13 worker.tomcat1.port=8009 worker.tomcat1.host= worker.tomcat2.type=ajp13 worker.tomcat2.port=8009 worker.tomcat2.host= worker.tomcat.type=lb worker.tomcat.sticky_session = 1 worker.tomcat.balance_workers=tomcat1,tomcat2 worker.status.type=status</pre>
Note: If after all this configuration, all sub domain still get redirected to the default web app, make the following change,
<pre><Host name="crm.mydomain.com" appBase="webapps"> <Context path="" docBase="crm/"/> </Host> <Host name="erp.mydomain.com" appBase="webapps"> <Context path="" docBase="erp/"/> </Host></pre>
This is because mod_jk will forward the domain name as is.
Are you looking to build a great product or service? Do you foresee technical challenges? If you answered yes to the above questions, then you must talk to us. We are a world-class custom .NET development company. We take up projects that are in our area of expertise. We know what we are good at and more importantly what we are not. We carefully choose projects where we strongly believe that we can add value. And not just in engineering but also in terms of how well we understand the domain. Book a free consultation with us today. Let’s work together.