Skip to main content

Tomcat - Basic Clustering

Tomcat - Basic Clustering

  • Till now we have 1 tomcat instance running and now we'll learn how to loadbalance multiple tomcat instances.
  • For this let us have another tomcat instance configured first.
  • Go to the /opt directory and copy tomcat8 to tomcat8-n2
# cp -prv tomcat8 tomcat8-n2
  • Now we know that we are using some ports for tomcat say 8080, 8005, 8009
  • For our additional tomcat instance we need to change the ports. If we don't then we might need to experience port conflict
  • I am going to edit server.xml config file in the new node and increment the port numbers by 1
# cd /opt/tomcat8-n2/conf/
# vi server.xml

8005 -> 8006
8080 -> 8081
8443 -> 8444
8009 -> 8010
  • Now you need to add your new Catalina home, base and temp directories
  • First you need to change the catalina.sh script and redirect the above 3 variables to the new variables
  • Edit the catalina.sh script and add the following lines
# vi /opt/tomcat-n2/bin/catalina.sh

CATALINA_BASE=$CATALINA_BASE2
CATALINA_HOME=$CATALINA_HOME2
CATALINA_TMPDIR=$CATALINA_TMPDIR2
  • Now edit /etc/profile file and set our new directories
# vi /etc/profile

CATALINA_BASE2=/opt/tomcat8-n2
CATALINA_HOME2=/opt/tomcat8-n2
CATALINA_TMPDIR2=/opt/tomcat8-n2/temp
  • Now we need to edit /etc/nginx/vhost.d/default.conf file to add the upstream directive to loadbalance
  • Edit that file and add the following at the top of the file
upstream myTomcat {
 server localhost:8080;
 server localhost:8081;
}
  • Now we need to change the proxy_pass
proxy_pass http://myTomcat;

Comments

Popular posts from this blog

Ansible Installation Steps Red Hat Enterprise Linux 7

Ansible is a simple IT automation engine that automates provisioning, configuration management, application deployment and many other IT needs.  Designed for multi-tier deployments, ansible models your IT infrastructure by describing how all of your systems interrelate, rather than just managing one system at a time. In this Article we are going to learn Ansible Installation Steps Red Hat Enterprise Linux 7 – RHEL 7. It uses no agents and no additional custom security infrastructure, so it’s easy to deploy – and most importantly, it uses a very simple language YAML that allow you to describe your automation jobs in a way that approaches plain English. Ansible Architecture Ansible works by connecting to your nodes and pushing out small programs, called “Ansible modules” to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules using SSH Protocol, and removes them when finished. Your library of modul...

Troubleshooting Tomcat using Catalina log

Troubleshooting Tomcat using Catalina log We can get the  catalina  logs in  $CATALINA_HOME/logs Here we'll have a  catalina.out We can see some huge info in that log file. If we want to what exactly happens since the start of tomcat then we need to log that into a new file. By default we have log rotation enabled on this logs. For now let us stop tomcat and nullify the catalina.out file and then start tomcat to have some new info in the catalina.out # service tomcat stop # cd $CATALINA_HOME/logs # :> catalina.out (or) cat /dev/null > catalina.out # ll catalina.out -rw-r----- 1 root root 0 Feb 18 16:19 catalina.out # service tomcat start # ll catalina.out -rw-r----- 1 root root 17341 Feb 18 16:21 catalina.out We can see the log being written after the start of tomcat. Now we can notice the instance giving some information about the starting of tomcat, about the configuration for the startup, path of the servlet instance for which the log is re...

Customizing Java Virtual Machine

Customizing Java Virtual Machine Customizing the  catalina.sh CATALINA_OPTS CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS" By default the CATALINA_OPTS line will looks like above. Among which the JPDA_OPTS is used to provide the debug options for the catalina script. Now we need to edit this line and can add our custom options like the size of initial memory of JVM (min. size), the size of memory of the JVM (max. size) it can grow upto, garbage collection options, etc. Add the below at the end of the  CATALINA_OPTS  line -Xms128m -Xmx256m -Xms  means Extended Minimum Size which is the min / initial size of a JVM to start with -Xmx  means Extended Maximum Size which is the max size upto which a JVM can grow