Tomcat Load Balancer พร้อม Apache โดยใช้ Mod Proxy และ Session Sticky

กำหนดค่า Tomcat ด้วย Apache โดยใช้ โมดูลพร็อกซีและเซสชันที่ปักหมุด


การกำหนดค่า Tomcat Load Balancer ด้วย Apache เว็บเซิร์ฟเวอร์โดยใช้ Mod Proxy นั้นค่อนข้างง่าย.

ง่ายเมื่อคุณทำตามลำดับและทุกอย่างเป็นไปด้วยดี ฉันแสดงรายการต่อไปนี้ทีละขั้นตอนเกี่ยวกับวิธีกำหนดค่า Apache กับ Tomcat เพื่อกำหนดค่า Load Balancer โดยใช้ Mod Proxy.

แนะนำให้มีการโหลดบาลานซ์ในสภาพแวดล้อมการผลิตเสมอเพื่อให้มีความพร้อมดีกว่า.

การกำหนดค่าเซิร์ฟเวอร์เว็บ Apache

  • เปิดใช้งาน proxy_module, proxy_balancer_module และ proxy_http_module ใน httpd.conf ของเว็บเซิร์ฟเวอร์ 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

เพิ่ม pass proxy พร้อมกับชื่อ balancer สำหรับรูทบริบทของแอ็พพลิเคชัน.

ในตัวอย่างนี้ฉันมีเส้นทางพร็อกซีเป็นตัวอย่างและชื่อ balancer เป็น mycluster.

สิ่งสำคัญมากที่จะรวมถึง stickysession หากไม่มีตัวเลือกนี้จะแจกจ่ายคำขอเดียวกันไปยังเซิร์ฟเวอร์ Tomcat หลายเครื่องและคุณจะพบปัญหาการหมดอายุเซสชันในแอปพลิเคชัน.

ProxyRequests Off
ProxyPass / samples balancer: // mycluster stickysession = JSESSIONID
ProxyPassReverse / ตัวอย่าง balancer: // mycluster stickysession = JSESSIONID

BalancerMember http: // localhost: 8080 / ตัวอย่างเส้นทาง = เซิร์ฟเวอร์ 1
BalancerMember http: // localhost: 8090 / ตัวอย่างเส้นทาง = เซิร์ฟเวอร์ 2

ดังที่คุณเห็นในการกำหนดค่าด้านบนฉันได้เพิ่มเส้นทางใน BalancerMember เพื่อให้สามารถเพิ่มค่าเส้นทางต่อท้ายรหัสเซสชัน.

ตอนนี้ให้กำหนดค่า Apache เพื่อพิมพ์ JSESSIONID ในบันทึกการเข้าถึง.

  • เพิ่มคำสั่งต่อไปนี้ใน LogFormat

% {} JSESSIONID C

Ex:

LogFormat "% h% l% u% t "R%" %>s% b "% {} Referer ฉัน" "% {User-Agent} ฉัน""% {} JSESSIONID C"" รวม

  • รีสตาร์ท Apache เว็บเซิร์ฟเวอร์

การกำหนดค่า Tomcat

คุณต้องกำหนดค่าอินสแตนซ์ tomcat ที่มี ID เส้นทางเหมือนกับที่คุณทำ BalancerMember ข้างบน.

  • เพิ่มพารามิเตอร์ jvmRoute ใน server.xml ของ Tomcat ต้องเพิ่มสิ่งนี้ในแท็กชื่อเครื่องยนต์.

Tomcat เช่นกำหนดค่าด้วย 8080 ท่าเรือ

Tomcat เช่นกำหนดค่าด้วย 8090 ท่าเรือ

  • รีสตาร์ทเซิร์ฟเวอร์ Tomcat

การตรวจสอบ

สร้างแอปพลิเคชั่นโหลดและตรวจสอบล็อกการเข้าถึงของเซิร์ฟเวอร์ apache เพื่อให้แน่ใจว่าคำขอของคุณได้รับการส่งไปยังอินสแตนซ์ tomcat เพียงอินสแตนซ์เดียว.

คุณจะสังเกตเห็นว่า ID เซสชันของคุณถูกต่อท้ายเส้นทางตามที่แสดงในตัวอย่างด้านล่าง.

Ex:

127.0.0.1 – – [18 / Sep / 2013: 10: 02: 02 +0800] "POST / samples / servlets / servlet / RequestParamExample HTTP / 1.1" 200 662 "http: // localhost / ตัวอย่าง / 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 / ตัวอย่าง / servlets / servlet / RequestInfoExample HTTP / 1.1" 200 693 "http: // localhost / ตัวอย่าง / 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 / ตัวอย่าง / 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 / ตัวอย่าง / servlets / servlet / SessionExample HTTP / 1.1" 200 1124 "http: // localhost / ตัวอย่าง / 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 / samples / servlets / servlet / SessionExample HTTP / 1.1" 200 1142 "http: // localhost / ตัวอย่าง / 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 / ตัวอย่าง / servlets / servlet / SessionExample? dataname = fda&datavalue = fadaf HTTP / 1.1" 200 1159 "http: // localhost / ตัวอย่าง / 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 / ตัวอย่าง / servlets / servlet / SessionExample? dataname = foo&datavalue = bar HTTP / 1.1" 200 1174 "http: // localhost / ตัวอย่าง / Servlets / servlet / SessionExample DataName = องค์การอาหารและยา&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 / ตัวอย่าง / servlets / servlet / RequestHeaderExample HTTP / 1.1" 200 1423 "http: // localhost / ตัวอย่าง / Servlets /" "Mozilla / 5.0 (X11; Linux x86_64; rv: 17.0) Gecko / 20130807 Firefox / 17.0""B80557A1D9B48EC1D73CF8C7482B7D46.server2"

ฉันหวังว่านี่จะช่วยคุณในการกำหนดค่า Tomcat Load Balancer ด้วย Apache Mod Proxy และ Session Sticky.

หากสนใจที่จะเรียนรู้เกี่ยวกับการบริหาร Tomcat ให้ตรวจสอบเรื่องนี้ หลักสูตรออนไลน์.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map