Linux
將websockets重定向到埠?
所以,我有一個 C++ 中的 WebSocket 伺服器,它是一個完全獨立的實體 - 處理標頭解析、接收、發送,所有這些都自己處理,直接監聽埠。
問題是,它需要與 Apache 一起在伺服器上執行,這有點問題。現在,這裡有一個涉及 mod_proxy 的類似問題的解決方案,但我希望我可以在 Apache 甚至可能使用 iptables 之前攔截和重定向 WebSocket 通信。
所以問題是,是否有可能將發往聊天.mysite.net 的流量引導到一個 WebSocket 伺服器上,例如,埠 8080,而其他任何流向 mysite.net 的流量都按預期的方式傳輸到 Apache?
事實證明這實際上很容易;只需編寫客戶端程式碼以訪問伺服器
ws://mysite.com:8080
。隨著 WebSockets 能夠使用埠 80 的所有吹捧,我很驚訝地發現它不需要。
抱歉,iptables 不可能,因為 iptables 不會說/理解 http 協議。有人應該寫 ip_conntrack_http 這樣它才能真正起作用(類似於 ftp conntrack 的東西);-) 到那時你可能應該將 apache 與 mod_proxy 或 nginx 一起使用。