Langkau ke kandungan utama

Install Tomcat 7/8 pada Redhat 6.4

Post ini akan merangkumi memasang dan konfigurasi asas Tomcat 7 pada Redhat 6.4
Tomcat 7 melaksanakan Pages spesifikasi dan beberapa ciri-ciri baru JavaServer 2.2 dan Servlet 3.0. Pengurus Permohonan juga mempunyai wajah baru dan peranan yang lebih terperinci dan akses daripada versi 6.x

Dalam post ini, kita akan memasang Tomcat 7 dan JDK 7, mengkonfigurasi Tomcat sebagai satu perkhidmatan, mewujudkan skrip mula / berhenti dan (pilihan) menetapkan Tomcat untuk menjalankan di bawah pengguna bukan root. Kita juga akan mengkonfigurasi akses asas kepada Pengurus Tomcat dan mengambil sekilas pandang pada pengurusan ingatan menggunakan JAVA_OPTS

Akhirnya, kita akan melihat menjalankan Tomcat pada port 80 serta beberapa strategi untuk menjalankan Tomcat di belakang Apache. Jika anda menggunakan keluaran yang berbeza, hanya menukar nama fail di bawah sewajarnya.Untuk memulakan, kita perlu memasang Java Development Kit (JDK) 7. JDK 1.6 adalah versi JDK minimum untuk Tomcat 7.


Step 1: Install JDK 1.7
Download the latest JDK Disini: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Pasang JDK terbaru,Saya pakai JDK 7, Update 5. The JDK is spesifik kepada 32 and 64 bit versions.

Untuk 64 bit, Jadi saya guna : jdk-7u5-linux-x64.tar.gz.

Untuk 32 bit, guna: jdk-7u5-linux-i586.tar.gz.

Cara memasang Oracle JDK ada pada pautan http://catatan-khairi.blogspot.com/2014/06/install-jdk-6-pada-centos6.html

ATAU

Buat directory baru /usr/java:
  1. [root@srv6 ~]# mkdir /usr/java    

Pergi ke /usr/java directory yang telah dibuat
  1. [root@srv6 ~]# cd /usr/java    
  2. [root@srv6 java ]#   

Download JDK and simpan ke /usr/java directory yang telah dibuat diatas.

Unpack jdk-7u5-linux-x64.tar.gz di dalam /usr/java directory guna tar -xzf:
  1. [root@srv6 java]# tar -xzf jdk-7u5-linux-x64.tar.gz  
Ini akan mencipta directory /usr/java/jdk1.7.0_05. Ini kita akan guna sebagai JAVA_HOME.

Kita setting JAVA_HOME & letak pada path untuk kegunaan user

Boleh jalankan command ni dari CLI:
  1. [root@srv6 java]# JAVA_HOME=/usr/java/jdk1.7.0_05  
  2. [root@srv6 java]# export JAVA_HOME  
  3. [root@srv6 java]# PATH=$JAVA_HOME/bin:$PATH  
  4. [root@srv6 java]# export PATH  

Untuk set JAVA_HOME secara tetap, kita perlu menambah kedalam  ~/.bash_profile  user (dalam kes ini root). 
Kita juga menambah /etc/profile dan kemudian memberi sumber kepada semua user
  1. export JAVA_HOME=/usr/java/jdk1.7.0_05/  
  2. export PATH=$PATH:$JAVA_HOME/bin
Apabila anda telah menambah ke ~/.bash_profile, anda perlu log out, & log back semula & periksa  JAVA_HOME telah di set dengan betul.
  1. [root@srv6 ~]#  echo $JAVA_HOME  
  2. /usr/java/jdk1.7.0_05  

Step 2: Download & Unpack Tomcat 7.0.42 (atau tebaru)
Kita akan pasang Tomcat 7 bawah /usr/share.

Masuk ke dlm /usr/share directory:
  1. [root@srv6 ~]# cd /usr/share  
  2. [root@srv6 share ]#   
Download apache-tomcat-7.0.42.tar.gz (atau versi tebaru) sini

& simpan dlm /usr/share

kemudian verify  MD5 Checksum.
  1. [root@srv6 share ]# md5sum apache-tomcat-7.0.42.tar.gz  
  2. 307076fa3827e19fa9b03f3ef7cf1f3f *apache-tomcat-7.0.42.tar.gz  
Bezakan output di atas dgn MD5 Checksum dlm download link ini.

unpack file guna tar -xzf:
  1. [root@srv6 share ]# tar -xzf apache-tomcat-7.0.42.tar.gz    
Directory /usr/share/apache-tomcat-7.0.42 akan dibuat.


Step 3: Konfig Tomcat untuk dijalankan sebagai servis.
Kita akan lihat macamana menjalankan Tomcat sebagai servis & buat skrip Start/Stop/Restart dengan mudah serta jalankan Tomcat semasa proses boot.

Masuk ke dlm /etc/init.d directory & buat skrip bernama 'tomcat' spt dibawah.
  1. [root@srv6 share]# cd /etc/init.d  
  2. [root@srv6 init.d]# vi tomcat  
& ini skrip yang digunakan. 
  1. #!/bin/bash  
  2. # description: Tomcat Start Stop Restart  
  3. # processname: tomcat  
  4. # chkconfig: 234 20 80  
  5. # Kalau pasang JDK cara pertama - JAVA_HOME=/usr/java/default
  6. JAVA_HOME=/usr/java/jdk1.7.0_05  
  7. export JAVA_HOME  
  8. PATH=$JAVA_HOME/bin:$PATH  
  9. export PATH  
  10. CATALINA_HOME=/usr/share/apache-tomcat-7.0.42  
  11.   
  12. case $1 in  
  13. start)  
  14. sh $CATALINA_HOME/bin/startup.sh  
  15. ;;   
  16. stop)     
  17. sh $CATALINA_HOME/bin/shutdown.sh  
  18. ;;   
  19. restart)  
  20. sh $CATALINA_HOME/bin/shutdown.sh  
  21. sh $CATALINA_HOME/bin/startup.sh  
  22. ;;   
  23. esac      
  24. exit 0  

& ATAU ini skrip yang digunakan.(Tambah user Tomcat dulu #useradd tomcat) & setting jsvc(ada dibawah)
#!/bin/sh
#
# Tomcat startup script
#
# chkconfig: - 85 15
# description: Tomcat Server
# processname: tomcat
#
# To use this script run it as root - it will switch to the specified user
#
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.

#define where tomcat is - this is the directory containing directories log, bin, conf etc
CATALINA_HOME=${CATALINA_HOME:-"/usr/share/apache-tomcat-7.0.42"}
export CATALINA_HOME

#define the user under which tomcat will run, or use 'RUNASIS' to run as the current user
TOMCAT_USER=${TOMCAT_USER:-"tomcat"}
export TOMCAT_USER

#make sure java is in your path
JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.7.0_05"}
export JAVA_HOME


case "$1" in
start)
    $CATALINA_HOME/bin/daemon.sh start
    ;;
stop)
    $CATALINA_HOME/bin/daemon.sh stop
#Buang fail ini untuk elak masalah bila deploy fail war baru.
    rm -rf $CATALINA_HOME/webapps/Zegxx
    rm -rf $CATALINA_HOME/work/*
    ;;
restart)
    $0 stop
#Matikan Proses JAVA
  i=0
    while [ `ps ax|grep -v grep|grep jsvc|wc -l` -gt 0 -a $i -lt 60 ]
    do
     sleep 1
     (( i += 1 ))
    done
    /usr/bin/killall -9 jsvc
    $0 start
    ;;
*)
    echo "usage: $0 (start|stop|restart|help)"
esac


Skip diatas mengandungi skrip asas untuk digunakan. Seperti dalam skrip, anda juga boleh memanggil skrip startup.sh & shutdown.sh pada Tomcat directory spt (/usr/share/apache-tomcat-7.0.42/bin). 
Kita boleh ubah mengikut keinginan kita.

CATALINA_HOME bagi Tomcat adalah (/usr/share/apache-tomcat-7.0.42)

Sekarang set kebenaran untuk menjalanakan skrip
  1. [root@srv6 init.d]# chmod 755 tomcat  
Sekarang guna utiliti chkconfig untuk Tomcat.
  1. [root@srv6 init.d]# chkconfig --add tomcat  
  2. [root@srv6 init.d]# chkconfig --level 234 tomcat on  
Periksa semula:
  1. [root@srv6 init.d]# chkconfig --list tomcat  
  2. tomcat          0:off   1:off   2:on    3:on    4:on    5:off   6:off  
-Download test war kat sini   ;-
https://tomcat.apache.org/tomcat-6.0-doc/appdev/sample/sample.war

-klu pakai mysql Dowload  official JDBC driver for MySQL @ mysql connector.xx.jar ke dalam /apache-tomcat-xxx/lib/* dan edit baris berikut.

#vim /apache-tomcat-xxx/conf/context.xml
<Context>
<Resource name="jdbc/push_notification" auth="Container" type="javax.sql.DataSource"

               maxActive="100" maxIdle="30" maxWait="10000"

               username="nama-user" password="katalaluan" driverClassName="com.mysql.jdbc.Driver"

               url="jdbc:mysql://alamat-IP-server:3306/nama-pengkalandata"/>

</Context>

Sekarang cuba skrip kita.

Mula Tomcat:
  1. [root@srv6 ~]# service tomcat start  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.42  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.42  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.42/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_05  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.42/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.42/bin/tomcat-juli.jar  
Henti Tomcat:
  1. [root@srv6 ~]# service tomcat stop  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.42  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.42  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.42/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_05  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.42/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.42/bin/tomcat-juli.jar  
Mula semula Tomcat (kena mula dulu):
  1. [root@srv6 ~]# service tomcat restart  
  2. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.42  
  3. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.42  
  4. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.42/temp  
  5. Using JRE_HOME:        /usr/java/jdk1.7.0_05  
  6. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.42/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.42/bin/tomcat-juli.jar  
  7. Using CATALINA_BASE:   /usr/share/apache-tomcat-7.0.42  
  8. Using CATALINA_HOME:   /usr/share/apache-tomcat-7.0.42  
  9. Using CATALINA_TMPDIR: /usr/share/apache-tomcat-7.0.42/temp  
  10. Using JRE_HOME:        /usr/java/jdk1.7.0_05  
  11. Using CLASSPATH:       /usr/share/apache-tomcat-7.0.42/bin/bootstrap.jar:/usr/share/apache-tomcat-7.0.42/bin/tomcat-juli.jar  
Kita patut periksa log Catalina.out pada /usr/share/apache-tomcat-7.0.42/logs/catalina.out & periksa sebarang ralat
  1. [root@srv6 init.d]# more /usr/share/apache-tomcat-7.0.42/logs/catalina.out  
Cuba akses halaman Pengurus Tomcat :

http://domain_anda.com:8080 atau http://IPaddress_anda:8080.

Pastikan Firewall telah melepaskan port 8080 atau disable firewall guna setup.

& taip #service iptables stop.



Step 4: Konfig akses pengurus Tomcat.
Tomcat 7 mengandungi beberapa perubahan yang menawarkan peranan yang lebih terperinci.

Atas sebab-sebab keselamatan, tidak ada pengguna atau kata laluan yang dicipta untuk peranan pengurus Tomcat secara lalai. Untuk kegunaan Pelayan LIVE, yan terbaik adalah membuang permohonan Pengurus.

Untuk menetapkan peranan, nama pengguna (s) dan kata laluan (s), kita perlu untuk menetapkan fail tomcat-users.xml terletak di $CATALINA_HOME/conf/tomcat-users.xml.

Dalam kes pemasangan kami, $CATALINA_HOME terletak di /usr/share/apache-tomcat-7.0.42.

Dalam fail lalai Tomcat 7, tomcat-users.xml akan mempunyai unsur-unsur diantara tag komen yang perlu keluar. 

Peranan baru bagi Tomcat 7 menawarkan akses yang lebih terperinci dan Peranan berikut kini boleh didapati:

manager-gui
manager-status
manager-jmx
manager-script
admin-gu
admin-script.

KIta boleh mula set manager-gui , Contohnya seperti dibawah:
  1. <tomcat-users>  
  2. <role rolename="manager-gui"/>  
  3. <user username="tomcat" password="secret" roles="manager-gui"/>  
  4. </tomcat-users>  
Anda perlu berhati2 supaya keselamatan sentiasa terpelihara.


Rujukan :- 
http://www.davidghedini.com/pg/entry/install_tomcat_7_on_centos


Step 5. Konfigure Mod_jk

Apache Tomcat mod_jk Penyambung Konfigurasi Digital
Penggunaan Senario biasa - Mengapa menyambung httpd dan Tomcat?
Kelompok, Imbangan Beban, dan Keselamatan
Httpd mod_jk dan boleh digunakan untuk mengimbangi beban pelayan di seluruh keadaan berbilang Tomcat atau membahagikan keadaan Tomcat ke dalam pelbagai ruangan nama, yang diuruskan oleh httpd.

- Muat turun versi terbaru mod_jk

Penyambung mod_jk ialah modul Apache httpd yang membolehkan httpd untuk berkomunikasi dengan Apache Tomcat melalui protokol AJP. Modul ini digunakan bersama-sama dengan komponen Penyambung AJP Tomcat. Apache Tomcat menggunakan komponen Penyambung untuk membolehkan komunikasi antara contoh Tomcat dan pihak lain, seperti pelayar, pelayan, atau contoh lain Tomcat yang merupakan sebahagian daripada rangkaian yang sama. Sebagai contoh, penyambung HTTP mendengar untuk permintaan melalui protokol HTTP/1.1 pada pelbagai port TCP, dan menghantarnya ke Engine yang berkaitan dengan pemprosesan permintaan. Menggunakan penyambung AJP,  Apache Tomcat boleh bertukar-tukar data dengan mod_jk  yang dibolehkan Apache httpd, menggunakan protokol AJP. Perlaksanaan mod_jk juga disediakan untuk integrasi dengan IIS dan NES / iPlanet / Sun, tetapi kurang digunakan secara meluas.


AJP, sebuah acronymn untuk Apache Jserv Protocol, adalah versi perduaan HTTP yang dioptimumkan untuk komunikasi antara Apache httpd dan Apache Tomcat melalui sambungan TCP. Versi semasa protokol AJP ialah 1.3, yang disebut oleh ajp13 nama standard. ajp13 memanjangkan mod_jserv yang terdahulu dan modul ajp12, ia menawarkan peningkatan kelajuan yang ketara dan sokongan SSL. Selain daripada format data, perbezaan antara HTTP standard dan protokol AJP termasuk sambungan lebih baik (untuk mengelakkan penggunaan soket yang tidak perlu) dan memberi tumpuan kepada penggunaan semula sambungan melalui satu siri permintaan / sambutan kitaran. Penerangan terperinci protokol AJP boleh didapati di Tomcat Penyambung tapak sub-projek .
Terdapat beberapa sebab mengapa anda mungkin perlu httpd dan Tomcat untuk bercakap antara satu sama lain.  Sebab biasa ialah untuk menyambung dua pelayan adalah untuk membolehkan httpd berkhidmat untuk kandungan statik, membebaskan Tomcat untuk memproses permintaan dinamik. Walau bagaimanapun, peningkatan prestasi perrkhidmatan kandungan statik menggunakan Tomcat adalah cepat pada httpd (dan kadang-kadang lebih cepat, apabila penghapusan sambungan luaran diambil kira). Walau bagaimanapun, masih terdapat banyak sebab-sebab yang baik mengapa anda mungkin mahu menggunakan kedua-dua bersama-sama. Versi baru mod_jk dikeluarkan sebagai pakej sumber, dan pakej binari untuk platform pilih. Kedua-dua boleh didapati untuk dimuat turun dari Penyambung Apache Tomcat di (projek(muat turun) .
Rujukan :- http://www.mulesoft.com/apache-tomcat-mod-jk-connector-configuration
1- Buat mod_jk.so dulu

[root@srv6 init.d]#cd /usr/src/
[root@srv6 src]#wget http://apache.mirrors.pair.com//tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.37-src.tar.gz 
[root@srv6 src]#tar -xvf tomcat-connectors-1.2.37-src.tar.gz
[root@srv6 src]cd tomcat-connectors-1.2.37-src/native/
[root@srv6 src]cat BUILDING.txt
[root@srv6 native]yum install gcc gcc-c++ httpd-devel
[root@srv6 native]./configure --with-apxs=/usr/sbin/apxs
[root@srv6 native]make
[root@srv6 native]make install
[root@srv6 native]cp apache-2.0/mod_jk.so /usr/lib64/httpd/modules/
[root@srv6 native]cd /usr/lib64/httpd/modules/
[root@srv6 modeules]ls

ATAU

[root@srv6 modeules]wget --no-check-certificate https://s1soia.dm2302.livefilestore.com/y2pLxj_ar3JqLMiTLeTwmZ4jv5oFm1iRfjOxcJ4qh4-aYLGzH0daHRKT_MPPlMFATgBG0Mh6RgzCYFeMxCShTmEfNmKP2jqnW3LINxDS8_k7Mc/mod_jk.so?download&psid=1

[root@srv6 modeules]chmod 755 mod_jk.so

2. Setting Httpd.conf


[root@srv6 modeules]#vim /etc/httpd/conf/httpd.conf

Pada line terakhir tambah ni >> 
Include /etc/httpd/conf/vhosts/*.conf

[root@srv6 modeules]#cd /etc/httpd/conf/
[root@srv6 conf]#mkdir vhosts
[root@srv6 conf]#cd vhosts
[root@srv6 vhosts]#vim /etc/httpd/conf/vhosts/workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.port=8009
worker.worker1.host=localhost #atau IP Public
worker.worker1.lbfactor=1

[root@srv6 init.d]# vim /etc/httpd/conf/vhosts/0.conf 

LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
JkWorkersFile /data/sys/httpd/conf/workers.properties
JkShmFile     /var/log/httpd/mod_jk.shm
JkLogFile     /var/log/httpd/mod_jk.log
JkLogLevel    info,debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkMount /example/* worker1

#Semua yang fail .war mount kat sini boleh akses terus guna url cth http://127.0.0.1/test/ -tanpa port :8080
JkMount /example/* worker1
##########mod_jk##############

# DO NOT MOUNT EVERYTHING!
#
</IfModule>



==============================================================

[root@srv6 vhosts]# wget --no-check-certificate https://tsncra.dm2301.livefilestore.com/y2pctFt3p9MQxREgq0F3PiLmqOYvfb-UpPUerLeGva91xyEuWM_HoNk6UceORhbnWgnoToltry78cvTdgzuj1Cb121g8H3vvGbp_usGmsKe1vU/example.war?download
[root@srv6 vhosts]#mv example.war\?download /usr/share/apache-tomcat-7.0.42/webapps/example.war
[root@srv6 vhosts]#service httpd restart
[root@srv6 vhosts]#service tomcat restart
[root@srv6 vhosts]#netstat -pantul|grep "8009"

Jangan lupa set http auto start guna command

chkconfig --level 2345 httpd on
===================================================================

Untuk Sebarang masalah, periksa log berikut :-

1- #  tail -n 1000 /usr/share/apache-tomcat-7.0.42/logs/catalina.out
2- #  tail -f /var/log/httpd/error_log


Setting Untuk Tambah Keselamatan Pada Server.
[root@srv6]vim /etc/ssh/sshd_config 
#Tukar kepada "no"
GSSAPIAuthentication no


====================================
SETTING PERFORMANCE APACHE
@@@@@@@@@@@@@@@@@

1-Untuk TUNING Apache Tomcat, sila comment  / membuang Alias & ScriptAlias untuk ikon, cgi-bin & error dalam / etc / httpd / conf / httpd.conf dan menghapuskan semua modul yang tidak diperlukan seperti fail conf welcome, manual, php, perl, ssl , webalizer dan wsgi dalam / etc / httpd / conf.d & sila Matikan halaman lain untuk mount (JkMount).

2-Edit /etc/httpd/conf/httpd.conf, comment out baris ini.

=======================================
#Alias /icons/ "/var/www/icons/"

#<Directory "/var/www/icons">
#    Options Indexes MultiViews FollowSymLinks
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#</Directory>

==============================================

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#
#<Directory "/var/www/cgi-bin">
#    AllowOverride None
#   Options None
#    Order allow,deny
#    Allow from all
#</Directory>
#
======================================
#Alias /error/ "/var/www/error/"

#<IfModule mod_negotiation.c>
#<IfModule mod_include.c>
#    <Directory "/var/www/error">
#        AllowOverride None
#        Options IncludesNoExec
#        AddOutputFilter Includes html
#        AddHandler type-map var
#        Order allow,deny
#        Allow from all
#        LanguagePriority en es de fr
#        ForceLanguagePriority Prefer Fallback
#    </Directory>

#</IfModule>
#</IfModule>


3-Buat vim  /etc/httpd/conf/vhosts/tuning.conf . (tukar nombor menurut memori mesin)
#tuning.conf

Timeout 10
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
# prefork MPM
<IfModule prefork.c>
StartServers       50
MinSpareServers    50
MaxSpareServers   200
#{TotalMemoryInBytes/10000000} or max 500
ServerLimit      500
MaxClients       500
MaxRequestsPerChild  1000
</IfModule>
# worker MPM
<IfModule worker.c>
ServerLimit         20
StartServers        10
#{TotalMemoryInBytes/10000000} or max 500
MaxClients         500
MinSpareThreads     50
MaxSpareThreads    200
ThreadsPerChild     50
MaxRequestsPerChild 1000
</IfModule>

<IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
 BrowserMatch ^Mozilla/4 gzip-only-text/html
 BrowserMatch ^Mozilla/4\.0[678] no-gzip
 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
 SetEnvIfNoCase Request_URI \.(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary
 Header append Vary User-Agent env=!dont-vary
</IfModule>

ServerTokens Prod
ServerSignature Off
TraceEnable off
Header unset X-Powered-By

ExpiresActive On
ExpiresByType image/gif "access plus 1 hour"
ExpiresByType image/png "access plus 1 hour"
ExpiresByType image/jpeg "access plus 1 hour"
ExpiresByType text/css "access plus 1 hour"
ExpiresByType text/javascript "access plus 1 hour"
ExpiresByType application/x-javascript "access plus 1 hour"
ExpiresByType application/x-shockwave-flash "access plus 1 hour"

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

<Directory "/var/www/html">
#Tukar ikut web folder
Options -Indexes FollowSymLinks +ExecCGI
AllowOverride FileInfo AuthConfig
</Directory>

4- Jika website hanya jalankan tomcat/jboss (contoh tak pakai perl atau php), edit /etc/sysconfig/httpd, change/add:HTTPD=/usr/sbin/httpd.worker


=======================

SETTING PERFORMANCE/TUNING  TOMCAT
@@@@@@@@@@@@@@@@@@@@@
==================
Install Tomcat Native
----------------------------
cd $CATALINA_HOME/bin/ atau /usr/share/apache-tomcat-7.0.42/bin/
tar xvfz tomcat-native.tar.gz
cd tomcat-native-1.1.27-src/jni/native
./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/java/jdk1.7.0_05
make

make install

http://tomcat.apache.org/native-doc/

Guna Alatan jsvc
------------------------
cd $CATALINA_HOME /bin/ atau /usr/share/apache-tomcat-7.0.42/bin/
tar xvfz commons-daemon-native.tar.gz
cd commons-daemon-1.0.15-native-src/unix
./configure --with-java=/usr/java/jdk1.7.0_42
make
cp jsvc ../..
cd ../..

Tomcat kemudiannya boleh dijalankan sebagai daemon menggunakan arahan berikut:-
CATALINA_BASE=$CATALINA_HOME
cd $CATALINA_HOME atau /usr/share/apache-tomcat-7.0.42/
./bin/jsvc \
-classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
-outfile $CATALINA_BASE/logs/catalina.out \
-errfile $CATALINA_BASE/logs/catalina.err \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
org.apache.catalina.startup.Bootstrap



Edit $CATALINA_HOME/bin/setenv.sh
------------------------------------------
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_LIBRARY_PATH

JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dhttp.maxConnections=500 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"

# Set the -Xms and -Xmx the same, around 50% to 80% of total memory
# Set the PermSize to either 256 or 512, increase it if there.s OutOfMemoryError PermGen space in log
# to see gc memory, add "-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:/tmp/gc.log"


Edit $CATALINA_HOME/conf/server.xml
-------------------------------------------------
For all the important connectors, make sure that connectionTimeout="600000" (or more) & maxThreads="500"

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" connectionTimeout="600000" maxThreads="500" />

=============================================
Tambahan

Untuk redirect page , Cth

http://192.168.0.5/test kepada http://192.168.0.5/test/  (tanpa "/")
Hanya Tambah Folder = mkdir test dalam /var/www/html/

===============================================
Edit fail /bin/setenv.sh Untuk tambah "-Denv=prod".

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_LIBRARY_PATH

JAVA_OPTS="-Xms4096m -Xmx4096m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dhttp.maxConnections=500 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Denv=prod"

###############################################################


Edit $CATALINA_HOME/conf/context.xml and conf/Catalina/*/*.xml atau fail  $CATALINA_HOME/conf/Catalina/localhost/ROOT.xml
--------------------------------------------------------
Add swallowOutput="true" to all <Context>

<Context swallowOutput="true">

<Resource name="jdbc/example" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="example" password="xxxxx" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://x.x.x.x:3306/example"/>


eg, <Context swallowOutput="true">

Setting untuk performance, kena tambah fail c3p0 lib dahulu. 
-----------------------------------------------------------------------
<Resource name="jdbc/EXample" auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory"
user="admin"
password="katalaluan"
jdbcUrl="jdbc:mysql://192.X.X.X:3306/nama_db"
driverClass="com.mysql.jdbc.Driver"
maxPoolSize="100"
maxConnectionAge="600" />



Edit conf/logging.properties, add
------------------------------------------------------------

1catalina.org.apache.juli.AsyncFileHandler.rotatable = true


====================================================

-Contoh kalau nak buat softlink dari aplikasi tomcat ke nfs yang telah mount /data (untuk jimat space fail sistem) dan mudah untuk buat cluster.

#cd /usr/share/apache/
#rm -rf webapps logs sys
#mkdir /data
#cd /data/
#mkdir webapps logs
#cd /usr/share/apache/
#ln -s /data/webapps webapps
#ln -s /data/logs /logs
#cd /data/sys
#mkdir httpd
#mv /etc/httpd/conf/vhost conf
#ll
0.conf  tuning.conf  workers.properties


-Katakan nak mount satu folder media tidak menggunakan Tomcat , tetapi menggunakan Apache.
#mkdir /data/media
#vim /data/sys/httpd/conf/0.conf
#Tambah kt bawah - JkMount /example/* worker1
JKUnMount /media/* worker1
Alias /media/ /data/media/

-Katakan nak pakai https@ssl & mount media seperti diatas.
#cp /etc/httpd/conf.d/ssl.conbk /data/sys/httpd/conf/ssl.conf
#vim /etc/httpd/conf/ssl.conf
#####Tambah sebelum tutup - </VirtualHost>
JkMount /* worker1
JKUnMount /media/* worker1
Alias /media /data/media

-Biar @ Tukar juga sijil/cert yang telah dibeli di pautan
SSLCertificateFile /etc/httpd/conf.d/ssl/Sijil_baru.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/Sijil_baru.key
SSLCertificateChainFile /etc/httpd/conf.d/ssl/Sijil_baru.ca-bundle

#mkdir /data/sys/httpd/conf/ssl
-salin 3 sijil tu masuk sini.

#service httpd restart
-Test 
http://x.x.x.x/media/cxlogo.png
https://x.x.x.x/example/
https://x.x.x.x/media/cxlogo.png





Catatan popular daripada blog ini

Setting APACHE Tomcat Dengan Configure mod_jk Connector pada RHEL6.4 cara ringkas.

 Asas - Apakah mod_jk?   Penyambung mod_jk ialah modul Apache httpd yang membolehkan httpd untuk berkomunikasi dengan Apache Tomcat  bagi  seluruh  keadaan  protokol AJP. Modul ini digunakan bersama- s ama dengan komponen Penyambung AJP Tomcat ini.  Mengenai Penyambung   Apache Tomcat menggunakan komponen Penyambung untuk membolehkan komunikasi antara contoh nya  Tomcat dan pihak lain, seperti pelayar, pelayan atau contoh lain Tomcat yang merupakan sebahagian daripada rangkaian yang sama. Sebagai contoh, penyambung HTTP mendengar untuk permintaan lebih protokol HTTP/1.1 pada pelbagai port TCP...

Pasang Fedora 21 pada Surface Pro 3

Sila buat recovery untuk pc anda dulu guna USB yang bersaiz > 8 GB. Windows 8 Tak boleh  shrink volume lebih dari 4 partision. Tapi boleh guna cara khas nak    shrink volume. Jika alat Pengurusan Cakera tidak membenarkan berbuat demikian kerana "fail unmovable", anda akan perlu memasang semula Windows - dan menggunakan helah khas.  Gunakan opsyen Pemulihan untuk Pasang semula (tidak memuat semula) Windows.  Jangan meneruskan Ubahsuaian Awal selepas Windows but untuk kali pertama, sebaliknya, secara paksa mematikannya menggunakan butang kuasa, dan hidupkannya semula. Anda mungkin perlu mematikannya dan pada dua atau tiga kali, sehingga but Windows dan dicadangkan anda untuk menggunakan Advanced Startup untuk membaikinya.  Masukkan Command Prompt daripada pilihan Advanced Startup - Troubleshoot - advance options - command prompt - administrator - continue. .  Gunakan DISKPART mengecut partition C dengan saiz yang anda inginkan.  But s...

Azure 4 - VNet Peering & Service Chaining

lab title module VNet Peering and Service Chaining Module 05 - Intersite Connectivity Lab: VNet Peering and Service Chaining All tasks in this lab are performed from the Azure portal except for Exercise 2 Task 3, Exercise 3 Task 1, and Exercise 3 Task 2, which include steps performed from a Remote Desktop session to an Azure VM Lab files: Labfiles\Module_05\VNet_Peering_and_Service_Chaining\az-100-04_01_azuredeploy.json Labfiles\Module_05\VNet_Peering_and_Service_Chaining\az-100-04_02_azuredeploy.json Labfiles\Module_05\VNet_Peering_and_Service_Chaining\az-100-04_azuredeploy.parameters.json Scenario Adatum Corporation wants to implement service chaining between Azure virtual networks in its Azure subscription. Objectives After completing this lab, you will be able to: Create Azure virtual networks and deploy Azure VM by using Azure Resource Manager templates. Configure VNet peering. Implement custom routing Validate service chaining ...