คู่มือ PHP Sessions Clustering สำหรับ PHP
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
ความพร้อมใช้งานสูงของแอปพลิเคชัน PHP ของคุณสามารถทำได้โดยการใช้เซสชัน PHP ที่จัดกลุ่มในระบบคลาวด์เพื่อให้จัดการแอปพลิเคชันเซิร์ฟเวอร์ Failover ได้สำเร็จเราจึงสร้าง Environment ด้วย Memcached เซิร์ฟเวอร์ Apache หลายตัวและโหลดบาลานเซอร์ NGINX:
-
เข้าสู่ระบบบัญชี PaaS
-
คลิกที่สร้าง Environmentปุ่ม.
-
ในโทโพโลยี Environmentหน้าต่างเลือกเซิร์ฟเวอร์ตั้งแต่สองเครื่องขึ้นไปที่คุณต้องการใช้ (เช่นสองอินสแตนซ์ของอาปาเช่) และเมคแคชNode พิมพ์ชื่อของ Environment แล้วคลิกสร้าง.
Node Memcached ถูกใช้เป็นกลไกแคชแบบกระจายใน Environment ที่มีหลาย Node ในกรณีของเราจะให้เซสชันเว็บที่มีเซสชันที่ติดหนึบซึ่งทำงานบนเซิร์ฟเวอร์แอปพลิเคชันหลายตัวหากเซิร์ฟเวอร์ตัวใดตัวหนึ่งทำงานล้มเหลวเซสชันจะถูกจัดเก็บไว้สำหรับการสำรองข้อมูลบน Node Memcached เซิร์ฟเวอร์อื่นสามารถดึงเซสชันจาก Memcached และเริ่มให้บริการเซสชันได้
มันทำงานอย่างไร
เมื่อคำขอแต่ละเซสชันเสร็จสมบูรณ์เซสชันจะถูกส่งไปยัง Node Memcached เพื่อสำรองข้อมูลเซสชันนี้ยังคงพร้อมใช้งานบนเซิร์ฟเวอร์แอปพลิเคชันดั้งเดิมและสามารถใช้เพื่อให้บริการคำขอถัดไปหลังจากคำขอที่สองเสร็จสิ้นเซสชันจะได้รับการอัปเดตใน Memcached
หากเซิร์ฟเวอร์เดิมล้มเหลวคำร้องขอถัดไปจะถูกส่งไปยังเซิร์ฟเวอร์แอปพลิเคชันอื่นเซิร์ฟเวอร์ที่ร้องขอใหม่ถูกถามถึงเซสชันที่ไม่ทราบดังนั้นเซิร์ฟเวอร์ใหม่นี้จะค้นหาเซสชันที่จำเป็นใน Node Memcached มันถูกระบุตาม ID ที่ต่อท้าย sessionID ขณะสร้างเซสชันเป็นผลให้เซิร์ฟเวอร์สามารถดึงเซสชันจาก Node Memcached
เมื่อเซิร์ฟเวอร์ตอบรับคำขอเซิร์ฟเวอร์จะอัปเดตเซสชันใน Node Memcached ด้วยดังนั้นจึงไม่มีการหยุดชะงักของแอปที่เกิดจากความล้มเหลวของเซิร์ฟเวอร์เดิม - จัดการข้อผิดพลาดได้สำเร็จ
ในเวลาเดียวกันตัวจัดสรรภาระงาน NGINX กำลังกระจายการรับส่งข้อมูลทั่วทั้งคลัสเตอร์ที่มีทรัพยากร HTTP คุณสามารถตรวจสอบสมดุลโหลดในแพลตฟอร์มโดยใช้เครื่องมือปรับสมดุลโหลดที่แตกต่างกัน
วิธีการกำหนดค่า
-
นำทางไปยัง Environment ของคุณในแดชบอร์ดแล้วคลิกการกำหนดค่าปุ่มสำหรับอาปาเช่
-
ในแท็บที่เปิดอยู่ให้ไปที่ฯลฯ > php.ini.
-
เพิ่มบรรทัดถัดไปไปที่ส่วนขยายแบบไดนามิก::
สำเนา
extension=memcached.so
4. ทำการเปลี่ยนแปลงใน[การประชุม]ปิดกั้น:
สำเนา
session.save_handler = memcached
session.save_path = "< server >:11211"
บันทึก:
- บันทึกการเปลี่ยนแปลงและรีสตาร์ทอาปาเช่Node
นั่นคือทั้งหมด! ตอนนี้หากอินสแตนซ์ตัวใดตัวหนึ่งล้มเหลวผู้ใช้จะถูกสลับไปยังอินสแตนซ์อื่นในคลัสเตอร์นี้โดยอัตโนมัติและจะไม่สังเกตเห็นการเปลี่ยนแปลงใดๆเลย

