Tomcat Load Balancer dengan Apache menggunakan Mod Proxy dan Session Sticky

Konfigurasikan Tomcat dengan Apache menggunakan Modul Proxy dan Sesi Sticky

Konfigurasi Tomcat Load Balancer dengan web server Apache menggunakan Mod Proxy cukup mudah.

Sangat mudah ketika Anda mengikuti urutannya, dan semuanya berjalan dengan baik. Saya telah membuat daftar langkah demi langkah berikut tentang cara mengkonfigurasi Apache dengan Tomcat untuk mengkonfigurasi Load Balancer menggunakan Mod Proxy.

Menyeimbangkan beban selalu disarankan di lingkungan produksi untuk ketersediaan yang lebih baik.

Konfigurasi Server Web Apache

  • Aktifkan proxy_module, proxy_balancer_module dan proxy_http_module di httpd.conf server web Apache
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Tambahkan proxy pass bersama dengan nama penyeimbang untuk root konteks aplikasi.

Dalam contoh ini, saya memiliki jalur proxy sebagai contoh dan nama penyeimbang sebagai mycluster.

  Perbaikan TERBAIK untuk Aliran Stabil

Sangat penting untuk menyertakan stickysession karena tidak memiliki opsi ini akan mendistribusikan permintaan yang sama ke beberapa server Tomcat, dan Anda akan memiliki masalah kedaluwarsa sesi dalam aplikasi.

<IfModule proxy_module>
ProxyRequests Off
ProxyPass /examples balancer://mycluster stickysession=JSESSIONID
ProxyPassReverse /examples balancer://mycluster stickysession=JSESSIONID
<Proxy balancer://mycluster>
BalancerMember http://localhost:8080/examples route=server1
BalancerMember http://localhost:8090/examples route=server2
</Proxy>
</IfModule>

Seperti yang Anda lihat dalam konfigurasi di atas, saya telah menambahkan rute di BalancerMember sehingga nilai rute dapat ditambahkan ke ID sesi.

Sekarang, mari konfigurasikan Apache untuk mencetak JSESSIONID di log akses.

  • Tambahkan yang berikut di direktif LogFormat
%{JSESSIONID}C

Mantan:

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""%{JSESSIONID}C"" combined
  • Mulai ulang Server Web Apache

Konfigurasi Tomcat

Anda harus mengonfigurasi instans Tomcat dengan id rute yang sama seperti yang Anda lakukan di BalancerMember di atas.

  • Tambahkan parameter jvmRoute di server.xml Tomcat. Ini harus ditambahkan di tag nama mesin.
  12 Ekstensi Chrome Perekaman Layar Terbaik

Instance Tomcat dikonfigurasi dengan port 8080

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

Instance Tomcat dikonfigurasi dengan port 8090

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

Verifikasi

Hasilkan beberapa beban pada aplikasi dan periksa log akses server Apache untuk memastikan permintaan Anda dialihkan hanya ke satu instance Tomcat.

Anda juga akan melihat ID sesi Anda ditambahkan ke rute seperti yang ditunjukkan pada contoh di bawah ini.

Mantan:

127.0.0.1 - - [18/Sep/2013:10:02:02 +0800] "POST /examples/servlets/servlet/RequestParamExample HTTP/1.1" 200 662 "http://localhost/examples/servlets/servlet/RequestParamExample" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:06 +0800] "GET /examples/servlets/servlet/RequestInfoExample HTTP/1.1" 200 693 "http://localhost/examples/servlets/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:17 +0800] "GET /examples/servlets/reqinfo.html HTTP/1.1" 200 3607 "http://localhost/examples/servlets/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:20 +0800] "GET /examples/servlets/servlet/SessionExample HTTP/1.1" 200 1124 "http://localhost/examples/servlets/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:26 +0800] "POST /examples/servlets/servlet/SessionExample HTTP/1.1" 200 1142 "http://localhost/examples/servlets/servlet/SessionExample" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:28 +0800] "GET /examples/servlets/servlet/SessionExample?dataname=fda&datavalue=fadaf HTTP/1.1" 200 1159 "http://localhost/examples/servlets/servlet/SessionExample" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B4EC1D73CF8C7482B7D46.server2" 
127.0.0.1 - - [18/Sep/2013:10:02:32 +0800] "GET /examples/servlets/servlet/SessionExample?dataname=foo&datavalue=bar HTTP/1.1" 200 1174 "http://localhost/examples/servlets/servlet/SessionExample?dataname=fda&datavalue=fadaf" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"
127.0.0.1 - - [18/Sep/2013:10:02:36 +0800] "GET /examples/servlets/servlet/RequestHeaderExample HTTP/1.1" 200 1423 "http://localhost/examples/servlets/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130807 Firefox/17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"

Saya harap ini membantu Anda dalam mengonfigurasi Tomcat Load Balancer dengan Apache Mod Proxy dan Session Sticky.

  9 Saluran Arab Terbaik di Kodi

Jika tertarik untuk belajar tentang administrasi Tomcat, periksa ini kursus online.

Senang membaca artikelnya? Bagaimana kalau berbagi dengan dunia?