ฉันกำลังใช้งานเว็บไซต์บน Apache ฉันมีแอปสองแอปที่ใช้เว็บซ็อกเก็ต แอปหนึ่งใช้ Node ซึ่งใช้พอร์ต 3000 และอีกแอปหนึ่งใช้ Phoenix ซึ่งใช้พอร์ต 4000 ทั้งสองแอปยังใช้พร็อกซีย้อนกลับ ตัวอย่างเช่นฉันมีสิ่งนี้:
<Location /node/>
ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/
</Location>
<Location /phoenix/>
ProxyPass http://127.0.0.1:4000/
ProxyPassReverse http://127.0.0.1:4000/
</Location>
อย่างไรก็ตาม ฉันมีปัญหาในการทำให้เว็บซ็อกเก็ตทำงาน ฉันมีสิ่งนี้ตั้งค่าสำหรับแอป Node (นอกบริบท <Location>):
RewriteCond %{QUERY_STRING} การขนส่ง=การสำรวจ [NC]
RewriteRule /(.*) http://127.0.0.1:3000/$1 [P]
RewriteCond %{HTTP:Upgrade} เว็บซ็อกเก็ต [NC]
RewriteRule /(.*) ws://127.0.0.1:3000/$1 [P]
ฉันพัฒนาแอป Node เมื่อไม่กี่ปีที่ผ่านมาและทุกอย่างทำงานได้อย่างสมบูรณ์ อย่างไรก็ตาม ขณะนี้ฉันกำลังพัฒนาแอพ Phoenix และฉันไม่รู้วิธีจัดการกับซ็อกเก็ตโดยตรง ในที่สุด ฉันวางแผนที่จะเลิกใช้แอป Node โดยสิ้นเชิง แต่ฉันจำเป็นต้องให้แอปทำงานสำหรับผู้ใช้ของเราต่อไปจนกว่าแอปใหม่จะได้รับการพัฒนา อย่างไรก็ตาม ฉันยังต้องการให้แอปใหม่ทำงานพร้อมกันบนเว็บไซต์เพื่อที่ฉันจะได้พัฒนาแอปได้ คงจะดีถ้าซ็อกเก็ตทำงานบนทั้งสองแอพพร้อมกัน