โพสต์ก่อนๆ ผมเขียนถึงการพัฒนา application ด้วย Nodejs และ Socket.io และจำเป็นต้องใช้ร่วมกันกับ PHP ที่รันบน Apache ปัญหาที่พบก็ตามข้อ 3 ในโพสต์เก่านั่นแหละครับคือทำ ProxyPass จาก port 80 ของ Apache ไปที่ app ที่รันไว้ port อื่นไม่ได้เพราะ Apache ไม่รองรับ Websockets
1.Infrastructure
เนื่องจาก Websockets ยังเป็นเรื่องใหม่อยู่ web server ส่วนมากยังไม่รองรับ ลองเสิร์ชหาวิธีแก้ปัญหาตามเว็บต่างๆ ส่วนมากถ้าเป็น PHP, Apache นิยมใช้ HAProxy เป็น proxy ถ้าเป็น Ubuntu สามารถติดตั้งผ่าน APT ได้เลย
sudo aptitude install haproxy
เราต้องการติดต่อกับ internet ด้วย port 80 ซึ่งเดิมรัน Apache web server ไว้อยู่แล้วเลยต้องเปลี่ยน architecture ของ server นิดหน่อยคือวาง HAProxy ขวาง server, app ตัวอื่นๆ และให้ listen ที่ port 80 แล้วค่อยกระจาย request ไปที่ port ต่างๆ ตามรูปข้างล่าง