CentOS'da Tomcat kurmak için öncelikle Java ortamının kurulu olması gerekir. Bunu anlamak için java -version komutu ile java yüklü ise versiyon bilgisi alınabilir. Aksi takdirde java komutu tanınmayacaktır
Tomcat kurulumu wget ile bir download adresinden indirilebilir. Örneğin mirrors.gigenet.com sitesinden aşağıdaki gibi indirilebilir
wget http://mirrors.gigenet.com/apache/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.29.tar.gz
daha sonra indirilen bu dosya aşağıdaki gibi açılır :
tar -xzf apache-tomcat-7.0.29.tar.gz
apache-tomcat ile başlayan klasörün içindeki bin klasörüne komut satırından geçilir.
./startup.sh
Komutu ile tomcat çalıştırılır. Aşağıdaki komut verilerek test edilebilir :
wget http://localhost:8080
<Resource name="jdbc/dsAdi" auth="Container" type="javax.sql.DataSource" username="un" password="pw" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://ipburaya:1433;databaseName=database_adi;" maxActive="8"/>Context web projesi içinde META-INF içerisinde koyulabilir.
<resource-ref> <description>Database Connection</description> <res-ref-name>jdbc/dsAdi</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth>< </resource-ref>Bu tanımlar yapıldıktan sonra DataSource kullanılabilir. Aşağıdaki gibi bir veritabanı connection'ı açılabilir :
Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource datasource = (DataSource)envContext.lookup("jdbc/ dsAdi"); Connection conn = ds.getConnection();
Apache gelen istekleri farklı server'lara dağıtabilmektedir (Load Balancing). Aşağıda önde bir Apache server ve arkada çalışan iki Tomcat kurulması için yapılması gereken işlemler anlatılacaktır.
Bir server'a apache 2 , diğer iki servera Tomcat 7 kurulum işlemi yapıldıktan sonra aşağıdaki işlemler yapılmalıdır
Tomcat server'larında server.xml dosyasında jvmRoute değeri set edilmelidir (set edildikten sonra tomcat'ler restart edilmelidir)
1 Tomcat için :
2. Tomcat için :
Apache için mod_proxy.so modülünün ve mod_proxy_balancer.so modülünün kurulu olması gerekir. Apache 2 için varsayılan olarak bu modüller kuruludur
httpd.conf dosyasına (etc/httpd/conf altındadır) aşağıdaki satırlar eklenmelidir
Not :
ProxyPass /test_projesi balancer://mycluster stickysession=JSESSIONID|jsessionid
ProxyPassReverseCookiePath /test_projesi /test_projesi
BalancerMember ajp://192.168.1.1:8080/test_projesi route=tomcat1 loadfactor=50
BalancerMember ajp://192.168.1.2:8080/test_projesi route=tomcat2 loadfactor=50
Tomcat 7'de catalina.out log dosya boyutu sürekli büyümektedir ve belirli bir zamana göre parçalı olarak loglanmamaktadır. Bunu engellemek için Unix/Linux sistemlerinde logrotate uygulaması kullanılabilir.
Bu yapmak için aşağıdaki konfigurasyon'u bir dosyaya yazıp, /etc/logrotate.d klasörü içine atmak yeterli olacaktır :
/apache-tomcat-7.0.47/logs/catalina.out {
copytruncate
daily
rotate 50
compress
missingok
size 5M
}
/apache-tomcat-7.0.47/logs/catalina.out ifadesi dosyanın path'idir ve sizin sisteminizde farklı yerde olabilir.
daily : günlü çalışacak
rotate : en son kaç log dosyasının saklanacağı (belirli sayıdan sonraki dosyalar silinecektir)
compress : sıkıstırma yapılacağı belirtilir
size : Boyut asıldıgı zaman yeni log dosyası yaratılacağı
copytruncate : kopyalanacak dosyanın silineceği belirtilir
logrotate sistemi her gün dosyayı kopyalayıp, yeni dosyayı boşaltacaktır.
Bununla ilgili detaylı bilgiyi http://www.vineetmanohar.com/2010/03/howto-rotate-tomcat-catalina-out adresindeki yazıdan okuyabilirsiniz
CENTOS için , /etc/logrotate.conf dosyasında rotate log files weekly ifadesi altındaki ifadeyi daily , rotate 4 de rotate 14 şeklinde değiştirmeniz gerekebilir. Bu konuda bilgiye : http://manuals.loway.ch/QM_AdvancedConfig-chunked/ar01s17.html adresinden ulaşabilirsiniz.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />Yukarıdaki yapıldıktan sonra tomcat restrart edilmedilir. Tomcat artık hem 80 hem de 8080 den çalışacaktır.
<html> <head> <title>Redirecting to /my</title> <meta http-equiv="refresh" content="0;url=/my" /> </head> <body> </body> </html>
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111 set JAVA_OPTS="-Dfibiler.appdir=Q:\app" call bin\startup.bat
export JAVA_OPTS="-Dfibiler.appdir=Q:\app"