Nginxがノードの前でリバースプロキシとして使用されているため、ノードが動的な処理を行うことを可能にしながら静的なコンテンツを提供するように設定されたサーバー全体を読み上げています。私の質問は、誰かがなぜWebSocketにプロキシをリバースするためにnginxのフロントを使用したいのですか? nginxが静的コンテンツ(HTML、CSS、JS、メディアなど)を提供する場合、サービスされているJSファイルは、websocketがnodejsでリッスンしているIPアドレスとポートを使用して直接サーバーに接続することはできませんサーバ?なぜサーバ上のWebSocketに接続するためにnginxを経由するのですか?あるいは、この状況をはっきりと理解していないのですか?ありがとうございました!WebSocketプロキシとしてnginxを使用する理由
答えて
WebSocketアプリケーションは、クライアントとサーバー間で長時間実行される接続を維持し、リアルタイムアプリケーションの開発を容易にします。 HTTPからWebSocketへの接続をアップグレードするために使用されるHTTPアップグレードメカニズムは、アップグレードおよび接続ヘッダーを使用します。リバースプロキシサーバーがWebSocketをサポートする際に直面する課題がいくつかあります。 1つは、WebSocketがホップバイホッププロトコルなので、プロキシサーバーがクライアントからのアップグレード要求を傍受するときに、適切なヘッダーを含む独自のアップグレード要求をバックエンドサーバーに送信する必要があります。また、HTTPによって使用される典型的な短命接続とは対照的に、WebSocket接続は長期間使用されるため、リバースプロキシは、これらの接続がアイドル状態にあると思われるので閉じずに開いたままにする必要があります。
NGINXは、クライアントとバックエンドサーバーの間でトンネルを設定できるようにすることでWebSocketをサポートします。 nginxのは、クライアントからバックエンドサーバーへのアップグレードのリクエストを送信するには、アップグレードおよびConnectionヘッダがこの例のように、明示的に設定する必要があります。
location /wsapp/ {
proxy_pass http://wsbackend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
これが完了すると、nginxのは、WebSocketの接続としてこれを扱います。ご覧ください詳細について
: - これは役立つだろうhttps://www.nginx.com/blog/websocket-nginx/ https://blog.martinfjordvald.com/2013/02/websockets-in-nginx/
願っています!
「方法」について説明しましたが、「理由」を知りたいと思います。 Nginxを経由せずにnodejsサーバのIPアドレスとポートを直接参照することができるときに、なぜNginxをリバースプロキシとして使用したいのですか?したがって、静的コンテンツ(例:jsファイル)がノードと通信する必要がある場合は、単にNetscapeの接続を直接設定するだけで、Nginx btuを使用してすべての静的コンテンツを提供します。私のポイントを理解していますか? – TheMAAAN
OK nginxを使用する理由の1つはプロキシパスです。これを使用してAPIを保護することができます。公開するか、フロントエンドに別のAPIを表示できます。proxypassでは、指定した実際のAPI名を別のAPIにリダイレクトできますあなたのコードを保護します。第二に、簡単にgginの圧縮とminficationを有効にすることができますnginxを使用して1つのステップとあなたのサイトのランクが高いです。あなたの画像とnginxを使用してファイルをインデックスすることもできます。 nginxをストリーミングサーバとして使用することもできます。 –
あなたが直接接続していた場合は、これらの機能を得ることはできません(自分でプログラムしていない限り)。 Nginxがnodejsプロセスと同じマシンにある場合はどうなりますか?リストされている機能を引き続き利用できますか? – TheMAAAN
- 1. WebSocket接続用のプロキシとしてnginxを使用
- 2. Javascript WebSocketクライアント用のnginxプロキシ
- 3. dockerとプロキシとしてnginxを使用
- 4. Nginx websocketプロキシはソケットごとに3つの接続を使用します
- 5. 表現するnginxプロキシ(node.js)とは?res.dataがindex.htmlの理由
- 6. nginxプロキシを使用してURLをリダイレクト
- 7. nginx 1.2.0 - socket.io - HTTP/1.1 - プロキシwebsocket接続
- 8. NginxをWebサーブレットのプロキシとして使用する
- 9. NginxとUnicornでWebsocketを使用しているRails?
- 10. NGINX auth_requestプロキシを使用してヘッダーを設定する
- 11. Openvas9用Nginxプロキシ
- 12. websocket通信にredisを使用する理由
- 13. httpsを使用するとホストに基づくnginxプロキシ
- 14. HTTPプロキシ・ルールとWebSocketを
- 15. nginxプロキシodoo pythonサーバーを使用
- 16. nginxを使ったWebSocketプロキシー
- 17. プロキシ経由でPsGetを使用する
- 18. WAMPのプロキシとしてnginxを使うべきですか?
- 19. nginxを逆プロキシとして使用して、アップストリームサーバとしてkeycloakを使用できない場合
- 20. ルビーでNet :: HTTPプロキシを使用してプロキシ経由でWebサイトにアクセスする
- 21. Nginx経由でWebSocketメッセージを書き直しますか?
- 22. Tyrus wss:// websocketがsquidプロキシを経由しない
- 23. nginxプロキシと404リダイレクト
- 24. NancyFxをプロキシとして使用する
- 25. リフトをプロキシとして使用する
- 26. Gitlabサーバー用のNginxプロキシ経由のGitクローンが機能していません
- 27. Nginx - Nginxプロキシ経由でWebPを条件付きで提供する
- 28. Vert.x 3を使用してwebsocket経由で接続しているユーザーを管理する方法は?
- 29. NTLMプロキシで.NET WebSocket Clientを使用するには?
- 30. nginx SSIコール - プロキシ経由でスクリプトを実行するには?
あなたはnginxのセキュリティモデルを取得します。メインサイトに設定したIPアドレス/リファラーの制限(例えば)もwebsocketに適用されます。 –
これを読む必要があります... http://stackoverflow.com/questions/224664/difference-between-proxy-server-and-reverse-proxy-server – JClarke
@Jclarke "proxy"という用語を使用して申し訳ありません。私の質問を編集しました。 「リバースプロキシ」という用語を使用します。しかし、私の質問はまだ立っている.. – TheMAAAN