Thursday, June 18, 2015

Apache httpd + Tomcat (mod_jk connector)

Sebuah aplikasi web biasanya ditempatkan di server aplikasi seperti Apache Tomcat. Application Server tidak dirancang untuk hardening security dan biasanya membutuhkan web server sebagai proxy antara request pengguna ke server aplikasi. Salah satu contoh dari web server adalah Apache2 (Apache HTTP Server).

ilustrasi arsitektur sistem

Untuk dapat menghubungkan antara web server (Apache HTTP Server) dengan application server (Apache Tomcat) kita perlu sebuah konektor yang bernama mod_jk.

Apache Tomcat dapat didownload dari http://tomcat.apache.org/download-70.cgi 

Apache HTTP Server dapat didownload dari http://httpd.apache.org/download.cgi 
mod_jk dapat didownload dari http://tomcat.apache.org/download-connectors.cgi

Setelah Apache2 dan Tomcat terinstal, siapkan mod_jk yang telah di download, dan di ekstrak.




copy mod_jk.so ke dalam folder modules di direktori instalasi Apache2.

Tambahkan konfigurasi ini ke file httpd.conf:
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module modules/mod_jk.so

# Where to find workers.properties
# Update this path to match your conf directory location
JkWorkersFile C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf\workers.properties 

# Where to put jk logs
# Update this path to match your logs directory location
JkLogFile C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\logs\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 indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send everything for context to worker ajp13
JkMount /application-web ajp13
JkMount /application-web/* ajp13

Berikutnya, buat file workers.properties dalam folder conf di direktori instalasi Tomcat 

Isi file workers.properties adalah sebagai berikut:

# Define 1 real worker named ajp13
worker.list=ajp13

# Set properties for worker named ajp13 to use ajp13 protocol,
# and run on port 8009
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.connection_pool_size=100
worker.ajp13.connection_pool_minsize=10
worker.ajp13.connection_pool_timeout=60
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300

Pastikan pada file server.xml pada folder config tomcat bagian berikut tidak ter-remark:
<connector port="8009" protocol="AJP/1.3" redirectport="8443">

Selanjutnya running Apache2 dan Tomcat. Akses url Apache2 + /application-web :
http://localhost:8080/application-web

Sekarang, semua permintaan pengguna akan diterima oleh Apache2 pertama dan kemudian diteruskan ke tomcat.

berikutnya, kita dapat mengkonfigurasi pengerasan keamanan pada Apache2, karena Apache2 adalah web server dan memiliki banyak fitur-fitur hardening security seperti SSL, anti-DOS, dll

Referensi : https://www3.ntu.edu.sg/home/ehchua/programming/howto/ApachePlusTomcat_HowTo.html

No comments:

Post a Comment