Centos Linux üstüne Tomcat Cluster kurulumunu anlatacağım. Kurulum işlemi öncesinde sunucuya sabit ip tanımlaması, hosts dosyası kaydı ve güvenlik duvarının ve SELinux kapalı olmalı. İsterseniz port ayarlarını yaparakta işlemleri yapabilirsiniz. Biz makalemizde konuyu dağıtmaması için kapattık.

Oracle Java JDK dosyasını indiriyoruz.

Java ve Tomcat dosyalarını yerel kullanıcıyla sunucuya Winscp ile kopyalayalım.

Tomcat dosyasını klasör olarak açalım.

Tomcat klasörünü node1 olarak değiştiriyoruz.

Aynı işlemleri yaparak node2 olarak bir tomcat daha oluşturuyoruz.

Java dosyasını çıkartıyoruz.

İsteğe göre java olarak adını değiştiriyoruz.

node1/bin klasöründe setclasspath.sh dosyasını vi ile açıyoruz. Bu ayarları node2 içinde yapıyoruz.

Java adresini tanımlayıp kaydedip çıkıyoruz. Bu ayarları node2 içinde yapıyoruz.

Komutla bin dizininde ki sh uzantılı dosyalara yetki verdik. Bu ayarları node2 içinde yapıyoruz.

node1/conf dizininde server.xml dosyasında aşağıdaki değişklikleri yapıyoruz. Bu ayarları node2 içinde yapıyoruz.

Node1 Yapılacak İşlemler

Server port="8605" shutdown="SHUTDOWN"

<Connector port="8680" protocol="HTTP/1.1"

                         connectionTimeout="20000"

                         redirectPort="8443" />

<Connector port="8609" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> Altındaki ve üstündeki <!-- ve --> siliyoruz.

 Node2 Yapılacak İşlemler

Server port="8705" shutdown="SHUTDOWN"

<Connector port="8780" protocol="HTTP/1.1"

                              connectionTimeout="20000"

                              redirectPort="8443" />

<Connector port="8709" protocol="AJP/1.3" redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost" jvmRoute="node2">

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> Altındaki ve üstündeki <!-- ve --> siliyoruz.

Tomcat için kullanıcıları tanımlıyoruz. Bu ayarları node2 içinde yapıyoruz.

<role rolename="manager-gui"/>

<user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>

Apache için gerekli dosyayı inidiriyoruz.

root kullanıcısıyla sunucuya Winscp ile kopyalıyoruz. Komutla çıkartıyoruz.

Çıkarttığımız klasörde native dizininde ./configure --with-apxs=/usr/sbin/apxs –enable-api-compatibility komutu çalıştırıyoruz.

Üstteki işlem bittiğinde make komutunu çalıştırıyoruz. İşlem ekranı.

Üstteki işlem bittiğinde make install komutunu çalıştırıyoruz. İşlem ekranı.

mod_jk.so dosyasının oluştuğunu kontrol ediyoruz.

httpd.conf dosyasını vi ile açıyoruz.

Ekrandaki satırı ekliyoruz.

İşaretli dizini açıyoruz.

İşaretli dosyaları oluşturuyoruz.

vi ile mod_jk.conf dosyasını açıp aşağıdaki satırları (CTRL+C) ekleyip kaydedip çıkıyoruz.

# Where to find workers.properties

JkWorkersFile /etc/httpd/conf.d/workers.properties

# Where to put jk logs

JkLogFile /var/log/httpd/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel info

# Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicates to send SSK KEY SIZE

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat

JkRequestLogFormat "%w %V %T"

# Mount your applications

JkMount /application/* loadbalancer

# You can use external file for mount points.

# It will be checked for updates each 60 seconds.

# The format of the file is: /url=worker

# /examples/*=loadbalancer

JkMountFile /etc/httpd/conf.d/uriworkermap.properties

# Add shared memory.

# This directive is present with 1.2.10 and

# later versions of mod_jk, and is needed for

# for load balancing to work properly

JkShmFile /etc/httpd/conf.d/mod_jk.shm

# Add jkstatus for managing runtime data

<Location /jkstatus/>

JkMount status

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Location>

vi ile workers.properties dosyasını açıp aşağıdaki satırları (CTRL+C) ekleyip kaydedip çıkıyoruz. Host ip ve port bilgilerini kendi ayarlarınıza göre yazmayı unutmayın.

# Define list of workers that will be used

# for mapping requests

workers.tomcat_home=/home/narsal/node1

workers.java_home=/home/narsal/java

ps=/

worker.list=loadbalancer,status,node1,node2

# Define Node1

# modify the host as your host IP or DNS name.

worker.node1.port=8609

worker.node1.host=192.168.1.238

worker.node1.type=ajp13

worker.node1.lbfactor=1

worker.node1.cachesize=150

# Define Node2

# modify the host as your host IP or DNS name.

worker.node2.port=8709

worker.node2.host=192.168.1.238

worker.node2.type=ajp13

worker.node2.lbfactor=1

worker.node2.cachesize=150

# Load-balancing behaviour

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=node1,node2

worker.loadbalancer.sticky_session=1

#worker.list=loadbalancer

# Status worker for managing load balancer

worker.status.type=status

vi ile uriworkermap.properties dosyasını açıp aşağıdaki satırları (CTRL+C) ekleyip kaydedip çıkıyoruz.

#Simple worker configuration file

# Mount the Servlet context to the ajp13 worker

/jmx-console=loadbalancer

/jmx-console/*=loadbalancer

/web-console=loadbalancer

/web-console/*=loadbalancer

/hello=loadbalancer

/hello/*=loadbalancer

Şimdi başlama sırası geldi.

Komutla Apache sunucusunu çalıştırıyoruz. Uyarıda sunucu adresini yazmadığımız için veriyor. İsterseniz değiştirebilirsiniz.

Apache test sayfası.

Yerel kullanıcı ile node1/bin içinde startup.sh ile node1 çalıştırıyouz.

Çalışma logunu anlık görmek için komut.

Anlık log ekranı. Aynı işlemleri yaparak node2 yide çalıştıralım.

Üst ekranda cluster için üyelik logu geldi.

Portlar ile tomcat çalışmaları görünüyor.

node1 arayaüz bağlantısı için kullanıcı adı ve şifre ile bağlanıyoruz. Test için hello.war dosyasını deploy ediyoruz. Kendi wardosyanızı deploy edebilirsiniz. Web.xml dosyanıza <distributable/> satırını eklemeyi unutmayınız.

Evet işlemler tamamlandı.

Başa Dön