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

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

RUK-COM PAAS / DEVELOPMENT TOOLS

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

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

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

ปรับปรุงตามเอกสาร Platform ปัจจุบัน

ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง

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

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

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

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

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

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

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

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

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

อย่างไรก็ตามเทคโนโลยี WebSockets ยังได้รับการสนับสนุนโดย Application Server ที่เรามีให้โดยตัวอย่างการกำหนดค่าที่เหมาะสมมีดังนี้:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ของ NodeApplication Server ที่คุณ deploy แอป WebSockets คุณสามารถคลิกปุ่มขยาย Node เพื่อดูหมายเลข ip ของคุณ
  • {Port}- หมายเลข Port ที่ Application ของคุณ listen

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

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

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

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

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

1. คลิกปุ่มการกำหนดค่าถัดจาก Application Server ของคุณ

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

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

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

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

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

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

3. ขั้นตอนสุดท้ายRestartApplication Server ของคุณเพื่อปรับการกำหนดค่าใหม่

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

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