CLOUD PAAS / DEVELOPMENT TOOLS

การสนับสนุน WebSockets

คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ

คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง

วัตถุประสงค์

บทความนี้อธิบายการใช้งาน การสนับสนุน WebSockets บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

เว็บซ็อกเก็ตเป็นเว็บเทคโนโลยีที่มีชื่อเสียง ซึ่งจะช่วยสร้างการเชื่อมต่อแบบ full-duplex อย่างต่อเนื่องระหว่างไคลเอนต์และเซิร์ฟเวอร์โดยการส่งข้อความทั้งสองทิศทางที่ส่งทันทีนั้นจะมีค่าใช้จ่ายเล็กน้อย การสื่อสารผ่านโปรโตคอลที่ใช้ TCP นี้ทำให้เกิดเวลาแฝงเวลาแฝงในการเชื่อมต่อต่ำมากและโต้ตอบกลับได้อย่างรวดเร็วจึงทำให้แอปพลิเคชันของคุณเร็วขึ้นและมีประสิทธิภาพมากขึ้น

คุณสามารถใช้ประโยชน์ต่อไปนี้ได้จาก WebSockets:

  • ลดความล่าช้าในการตอบสนองและการรับส่งข้อมูลเครือข่ายที่ไม่จำเป็น เนื่องจากการกระจายแบบ full-duplex ผ่านการเชื่อมต่อเดียว
  • การสตรีมมิ่งผ่านพร็อกซีและไฟลร์วอลล์ทั้ง upstream และ downstream ในครั้งเดียว
  • ความเข้ากันได้ย้อนหลังกับ pre-WebSocket โดยเปลี่ยนจากการเชื่อมต่อ HTTP เป็น WebSockets

Ruk-Com Cloud จัดเตรียมส่วนประกอบขั้นสูงเพื่อรองรับ WebSockets โดยการผสมผสานเทคโนโลยีเข้ากับโหลดบาลานเซอร์ที่ใช้ร่วมกันและโหนดบาลานเซอร์ NGINXคุณสามารถใช้งานได้แม้ไม่ได้เพิ่ม IP address ภายนอกกับแอปเซิร์ฟเวอร์ของคุณ

วิธีที่ง่ายที่สุดสำหรับการเปิดใช้งาน WebSockets คือการวาง NGINX balancer ไว้หน้าแอปพลิเคชันของคุณทำให้เป็นจุดเริ่มต้นของ environment และกำจัดการกำหนดค่าใดๆเพิ่มเติม เซิร์ฟเวอร์นี้ยังสามารถใช้เพื่อแทนที่การตั้งค่าเริ่มต้นได้อย่างง่ายดายด้วยการกำหนดค่าด้วยตนเอง เช่น การเปลี่ยนหมายเลข listener's port

อย่างไรก็ตามเทคโนโลยี WebSockets ยังได้รับการสนับสนุนโดยแอปพลิเคชันเซิร์ฟเวอร์ที่เรามีให้โดยตัวอย่างการกำหนดค่าที่เหมาะสมมีดังนี้:

คำแนะนำด้านล่างนี้จะให้ข้อมูลเชิงลึกเกี่ยวกับวิธีการกำหนดค่า WebSockets สำหรับแอปพลิเคชันของคุณโดยการใช้โหนดNGINX-บาลานเซอร์ตัวอย่างเช่น เราจะใช้แอปพลิเคชันแชทอย่างง่ายที่เขียนด้วยภาษา PHP ดังนั้นมาเริ่มกันทีละขั้นตอน

การสร้าง Environment และการ Deploy Application

1. เข้าสู่ระบบ Ruk-Com Cloud Dashboard ด้วยข้อมูลประจำตัวของคุณและคลิกสภาพแวดล้อมใหม่ด้านบนซ้าย

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. ในโทโพโลยีสิ่งแวดล้อมคุณควรสร้าง environment ให้เหมาะสมตามความต้องการของแอปพลิเคชันของคุณ (เช่น เราเลือกแอปพลิเคชันเซิร์ฟเวอร์อาปาเช่สำหรับแอป PHP ของเรา) องค์ประกอบที่บังคับเพียงอย่างเดียวคือNGINX-บาลานเซอร์

จากนั้นตั้งค่าขีดจำกัดการใช้ทรัพยากรสำหรับโหนดที่เลือกโดยใช้ตัวเลื่อน cloudlet, ป้อนชื่อ environment (เช่นบาลานเซอร์-เว็บซ็อกเก็ต) และคลิกสร้าง

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

3. รอซักครู่ environment ใหม่ของคุณจะปรากฏในหน้าแดชบอร์ด

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

4. Upload และ Deploy แอปพลิเคชันของคุณกับบริบทที่ต้องการ (ค่าเริ่มต้นคือราก) โดยการใช้ archive/URL หรือผ่าน remote VCS repository หรือวิธีการใช้งานที่เกี่ยวข้องสามารถดูได้ที่คู่มือ Deployment

การกำหนดค่า NGINX Balancer

ในส่วนนี้เราจะอธิบายตัวอย่างการกำหนดค่าจาก Jelastic โดยแก้ไขการตั้งค่าค่าเริ่มต้น proxy ที่ NGINX-balancer เพื่อกำหนดว่าคำขอที่เข้ามาควรเปลี่ยนเส้นทางไปที่ใดและเปิดใช้งาน WebSockets streaming

1. คลิกปุ่มการกำหนดค่าที่โหนด NGINX-balancer

2. เปิดไฟล์NGINX-jelastic.confในไดเร็กทอรีการประชุมค้นหาบล็อก location ในโค้ดเซิร์ฟเวอร์ส่วนแรกให้วางบรรทัดต่อไปนี้ก่อน:

location /ws/ {
   proxy_pass http://{appserver_ip}:{port};
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection "upgrade";
}

โดยที่

  • {appserver_ip}- IP address ของโหนดแอปพลิเคชันเซิร์ฟเวอร์ที่คุณ deploy แอป WebSockets คุณสามารถคลิกปุ่มขยายโหนดเพื่อดูหมายเลข ip ของคุณ
  • {พอร์ต}- หมายเลขพอร์ตที่แอปพลิเคชันของคุณ listen

ยกตัวอย่างการตั้งค่าดังรูปนี้

หมายเหตุ:โดยปกติเราแนะนำให้แก้ไขการกำหนดค่าในไฟล์ NGINX.conf และเก็บเนื้อหาของ NGINX-jelastic.conf ไว้เป็นการตั้งค่า default/backup แต่ในกรณีนี้เป็นการเปลี่ยนแปลงที่จำเป็นและค่อนข้างง่ายซึ่งการทำงานโดยตรงกับไฟล์ NGINX-jelastic จะทำให้ง่ายขึ้น

3. ทั้งหมดนี้คือการกำหนดค่า NGINX อย่าลืมกดปุ่มบันทึกเพื่อบันทึกการเปลี่ยนแปลงและกดปุ่มรีสตาร์ทที่โหนด balancer

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

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

1. คลิกปุ่มการกำหนดค่าถัดจากแอปพลิเคชันเซิร์ฟเวอร์ของคุณ

2. ในแท็บเครื่องมือจัดการการกำหนดค่าคุณสามารถเข้าถึงไฟล์ของแอปพลิเคชันได้โดยไปที่โฟลเดอร์เว็บรูท/รูท(หรือโฟลเดอร์อื่นที่แตกต่างกันหากคุณกำหนด context เองในระหว่างที่ deploy แอปพลิเคชัน)

เปิดไฟล์เพื่อระบุการตั้งค่า WebSockets และปรับpath ตามรูปแบบนี้:

เป็น: //{env_domain}{path_to_ws_file}

ค่า{env_domain} ควรถูกแทนที่ด้วยชื่อโดเมน environment (สามารถดูได้ภายใต้ชื่อ environment ที่แดชบอร์ด) และค่า{path_to_ws_file}ควรนำไปสู่ไฟล์ซึ่งจำเป็นต้องเข้าถึงเมื่อสร้างการเชื่อมต่อ WebSockets

ยกตัวอย่างเช่น:

อย่าลืมกดปุ่มบันทึกเพื่อดำเนินการให้สำเร็จ

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

4. เมื่อแอป Running อีกครั้งคุณสามารถคลิกเปิดในเบราว์เซอร์ถัดจาก environment ของคุณพื่อเข้าถึงแอปพลิเคชัน

5. คุณจะเห็นหน้าต่างแชทเล็กๆที่กำลังทำงานอยู่ซึ่งสามารถรับและส่งข้อความแบบเรียลไทม์ได้โดยไม่ต้องรีเฟรชแท็บเบราว์เซอร์