Nginx

在 Apache Web Server 前面配置 NGINX 反向代理(啟用 websockets)

  • May 19, 2020

根據 stackoverflow 論壇成員的推薦,我在此論壇中提出以下問題,它顯然更適合(我是該論壇的新手)。

我到底想要什麼:

我網站的特定頁面應從 Web 伺服器載入其內容(html 結構,表示聊天視窗),但其聊天功能,在伺服器端(放置在同一 Web 伺服器上)以 PHP Ratchet 腳本的形式顯示,應該可以工作通過 WebSocket 連接。

換句話說,對於這個特定頁面,Web 伺服器和 WebSocket 連接應該同時工作,而我只有一個 Apache (2.4) 伺服器,在共享主機的基礎上,沒有 root 訪問權限。而且,如前所述,在 Ratchet 中程式的聊天應用程序和網站的 HTML 頁面都存在於 Web 伺服器上。

在我的本地主機上進行測試時,效果非常好。然而,當嘗試在我的 Web 伺服器上部署它時,我遇到了麻煩,並且似乎需要在我的 Web 伺服器或類似伺服器( http://socketo.me/docs/deploy)前面使用 NGINX 反向代理。考慮到我的託管條件,這甚至可以部署,還是我需要切換到另一種託管類型?我從配置 NGINX 開始,但問題是我實際上無法修改我的 Apache Web 伺服器正在偵聽的埠,因為我沒有 root 訪問權限。我覺得我需要為此切換我的託管類型?

這個問題的一個方面可以總結為:當在共享主機的基礎上擁有一個沒有 root 訪問權限的 web 伺服器時,是否可以在客戶端和瀏覽器之間放置一個反向代理以用於 websocket 目的?

大多數共享主機計劃只允許您接受埠 80 (HTTP) 和 443 (HTTPS) 上的連接,並且不允許您訪問終端。

假設是這種情況,您將無法執行 Ratchet WebSocket 伺服器,因為它需要終端訪問並且最好託管在非 HTTP 埠上。

我建議您在專用託管計劃上執行 Web 伺服器和 WebSocket 伺服器,您將可以訪問終端並能夠使用您喜歡的任何埠。

引用自:https://serverfault.com/questions/1017814