ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บนแพลตฟอร์ม

RUK-COM PAAS / PHP

คู่มือ PHP Sessions Clustering สำหรับ PHP

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

ความพร้อมใช้งานสูงของแอปพลิเคชัน PHP ของคุณสามารถทำได้โดยการใช้เซสชัน PHP ที่จัดกลุ่มในระบบคลาวด์เพื่อให้จัดการแอปพลิเคชันเซิร์ฟเวอร์ Failover ได้สำเร็จเราจึงสร้าง Environment ด้วย Memcached เซิร์ฟเวอร์ Apache หลายตัวและโหลดบาลานเซอร์ NGINX:

  1. เข้าสู่ระบบบัญชี PaaS

  2. คลิกที่สร้าง Environmentปุ่ม.

  3. ในโทโพโลยี Environmentหน้าต่างเลือกเซิร์ฟเวอร์ตั้งแต่สองเครื่องขึ้นไปที่คุณต้องการใช้ (เช่นสองอินสแตนซ์ของอาปาเช่) และเมคแคชNode พิมพ์ชื่อของ Environment แล้วคลิกสร้าง.

Image 32: Memcached environmentNode Memcached ถูกใช้เป็นกลไกแคชแบบกระจายใน Environment ที่มีหลาย Node ในกรณีของเราจะให้เซสชันเว็บที่มีเซสชันที่ติดหนึบซึ่งทำงานบนเซิร์ฟเวอร์แอปพลิเคชันหลายตัวหากเซิร์ฟเวอร์ตัวใดตัวหนึ่งทำงานล้มเหลวเซสชันจะถูกจัดเก็บไว้สำหรับการสำรองข้อมูลบน Node Memcached เซิร์ฟเวอร์อื่นสามารถดึงเซสชันจาก Memcached และเริ่มให้บริการเซสชันได้

Image 33: memcached PHP cluster

มันทำงานอย่างไร

เมื่อคำขอแต่ละเซสชันเสร็จสมบูรณ์เซสชันจะถูกส่งไปยัง Node Memcached เพื่อสำรองข้อมูลเซสชันนี้ยังคงพร้อมใช้งานบนเซิร์ฟเวอร์แอปพลิเคชันดั้งเดิมและสามารถใช้เพื่อให้บริการคำขอถัดไปหลังจากคำขอที่สองเสร็จสิ้นเซสชันจะได้รับการอัปเดตใน Memcached

หากเซิร์ฟเวอร์เดิมล้มเหลวคำร้องขอถัดไปจะถูกส่งไปยังเซิร์ฟเวอร์แอปพลิเคชันอื่นเซิร์ฟเวอร์ที่ร้องขอใหม่ถูกถามถึงเซสชันที่ไม่ทราบดังนั้นเซิร์ฟเวอร์ใหม่นี้จะค้นหาเซสชันที่จำเป็นใน Node Memcached มันถูกระบุตาม ID ที่ต่อท้าย sessionID ขณะสร้างเซสชันเป็นผลให้เซิร์ฟเวอร์สามารถดึงเซสชันจาก Node Memcached

เมื่อเซิร์ฟเวอร์ตอบรับคำขอเซิร์ฟเวอร์จะอัปเดตเซสชันใน Node Memcached ด้วยดังนั้นจึงไม่มีการหยุดชะงักของแอปที่เกิดจากความล้มเหลวของเซิร์ฟเวอร์เดิม - จัดการข้อผิดพลาดได้สำเร็จ

ในเวลาเดียวกันตัวจัดสรรภาระงาน NGINX กำลังกระจายการรับส่งข้อมูลทั่วทั้งคลัสเตอร์ที่มีทรัพยากร HTTP คุณสามารถตรวจสอบสมดุลโหลดในแพลตฟอร์มโดยใช้เครื่องมือปรับสมดุลโหลดที่แตกต่างกัน

วิธีการกำหนดค่า

  1. นำทางไปยัง Environment ของคุณในแดชบอร์ดแล้วคลิกการกำหนดค่าปุ่มสำหรับอาปาเช่

  2. ในแท็บที่เปิดอยู่ให้ไปที่ฯลฯ > php.ini.

  3. เพิ่มบรรทัดถัดไปไปที่ส่วนขยายแบบไดนามิก::

สำเนา

extension=memcached.so

Image 36: memcached enabling4. ทำการเปลี่ยนแปลงใน[การประชุม]ปิดกั้น:

สำเนา

session.save_handler = memcached
session.save_path = "< server >:11211"

Image 37: session save path

บันทึก:ระบุ IP หรือ URL แบบ memcached ซึ่งคุณสามารถค้นหาได้ด้วยการคลิกข้อมูลปุ่มสำหรับ Node memcached ใน Environment ของคุณ

  1. บันทึกการเปลี่ยนแปลงและรีสตาร์ทอาปาเช่Node

นั่นคือทั้งหมด! ตอนนี้หากอินสแตนซ์ตัวใดตัวหนึ่งล้มเหลวผู้ใช้จะถูกสลับไปยังอินสแตนซ์อื่นในคลัสเตอร์นี้โดยอัตโนมัติและจะไม่สังเกตเห็นการเปลี่ยนแปลงใดๆเลย