การสนับสนุน WebSockets
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการสนับสนุน 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 ใหม่ด้านบนซ้าย

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

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

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
