Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setup Tomcat for multiple websites in one server (linux)

Tags:

java

tomcat

I know this question might be similar to others, however, I haven't been able to solve this.

I have a server with 25 websites, all of them uses Tomcat. I'm migrating to a new server which has Tomcat 8 (the regular version), whereas the old server uses "CPanel's easy tomcat".

I started migrating one website, which is now running on the new server, however, when a JSP is called from the browser, the browser shows the JSP code instead of executing it.

In my old server, I had to execute a feature from CPanel's easy-tomcat called "install servlets", which I really don't know what it does, however, after executing that, Tomcat would execute JSP's.

Now, in my new server, accordgin to what I've read, I've added this to the %CATALINA_HOME%/conf/server.xml file, inside the <Engine></Engine> tags (which I also had to include in my old server):

<Host name="mydomain.com" appBase="/home/myAccName/public_html/">
<Context path="" reloadable="false" docBase="/home/myAccName/public_html" />
</Host>

As you can see, the application is not located under %CATALINA_HOME%/webapps/ directory, and that's the way I need it to be.

What am I missing?

Any help will be really appreciated

I'm using Tomcat 8, EasyApache 4 and CentOS 7.6

like image 256
Sergio Avatar asked Nov 15 '25 15:11

Sergio


1 Answers

You can create VirtualHosts to setup multiple websites with multiple domain names in one server. You can try out same in tomcat 7, 8 and in 9 as well. 1.Edit your relevant server.xml file and include Virtual hosts as below.

Make sure to restart your tomcat server for the applied changes to take effect.

<Host name="example.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Alias>www.example.com</Alias>

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="example_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />

    <Context path="" docBase="/opt/tomcat/webapps/myapp1"
           debug="0" reloadable="true"/>
</Host>


<Host name="mydomain.org"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Alias>www.mydomain.org</Alias>

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="mydomain_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />

    <Context path="" docBase="/opt/tomcat/webapps/myapp2"
           debug="0" reloadable="true"/>
</Host>

Explanation

For example.com domain, /opt/tomcat/webapps/myapp1 is the document root (for your web 1). For mydomain.org domain, /opt/tomcat/webapps/myapp2 is the document root(for your web 1).

like image 141
Lahiru Wijesekara Avatar answered Nov 17 '25 03:11

Lahiru Wijesekara



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!