ฉันกำลังพยายามกำหนดค่า Apache 2.4 สำหรับการเชื่อมต่อกับ websocket สำหรับ socket.io กับเซิร์ฟเวอร์ websocket node.js โดยใช้ mod_proxy_wstunnel เราใช้งานได้ดีกับ socket.io 0.9 แต่ด้วยรีลีส 1.0 พวกเขาเปลี่ยนจุดสิ้นสุดของซ็อกเก็ตเป็นพารามิเตอร์การค้นหาและตอนนี้ฉันมีปัญหาในการกำหนดค่า apache ด้วยคำสั่งพร็อกซีที่ถูกต้อง
คำขอทั้งหมด/socket.io/?EIO=N&transport=websocket
(ที่ N คือหลักใด ๆ มักจะ 2) จำเป็นที่จะต้องถูกส่งต่อไปws://localhost:8082/socket.io/
แต่คำขออื่น ๆ http://localhost:8082/socket.io/
ทั้งหมดจะต้องมีการส่งต่อไปยัง
ฉันได้ลองใช้รูปแบบต่าง ๆ ต่อไปนี้ทั้งสองแบบ:
ProxyPass /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket
ProxyPassReverse /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket
ProxyPass /socket.io/ http://localhost:8082/socket.io/
ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/
.
RewriteRule /socket.io/?EIO=([0-9]+)&transport=websocket ws://localhost:8082/socket.io/ [QSA,P]
ProxyPass /socket.io/ http://localhost:8082/socket.io/
ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/
ฉันได้รวบรวมจาก googling ของฉันว่า ProxyPass และสถานที่ตั้งไม่สามารถกำหนดเป้าหมายสตริงการสืบค้นได้ดังนั้นมีตัวเลือกอื่นที่นี่หรือไม่ เส้นทางนั้นเขียนลงใน socket.io อย่างหนักดังนั้นการฟอร์กไลบรารีทั้งหมดฉันจึงไม่สามารถเปลี่ยนแปลงได้