[解決済み] WebSockets と Apache プロキシ : mod_proxy_wstunnel の設定方法は?
2022-08-17 09:40:27
質問
私は:
-
Apache
(v2.4) のために私のサーバーのポート 80 でwww.domain1.com
を使用すると mod_proxy そして mod_proxy_wstunnel 有効 -
node.js + socket.io
を同じサーバーの3001番ポートに接続してください。
アクセスする
www.domain2.com
(ポート 80 で) にリダイレクトされるのは、2.のおかげです。
にリダイレクトされます。
. Apacheの設定で設定しています。
<VirtualHost *:80>
ServerName www.domain2.com
ProxyPass / http://localhost:3001/
ProxyPassReverse / http://localhost:3001/
ProxyPass / ws://localhost:3001/
ProxyPassReverse / ws://localhost:3001/
</VirtualHost>
ウェブソケットの部分を除いて、すべてうまくいきます。
ws://...
の部分がプロキシによってうまく転送されません。
のページにアクセスすると
www.domain2.com
を、持っています。
Impossible to connect ws://www.domain2.com/socket.io/?EIO=3&transport=websocket&sid=n30rqg9AEqZIk5c9AABN.
質問です。 Apache に WebSocket のプロキシもさせるにはどうしたらよいでしょうか。
どのように解決するのですか?
やっとできました。 このトピック .
TODOです。
1) Apache 2.4 をインストールし(2.2 では動きません)、実行します。
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
2) 持つ
nodejs
を3001番ポートで実行する
3) Apache の設定に以下を追加します。
<VirtualHost *:80>
ServerName www.domain2.com
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3001/$1 [P,L]
ProxyPass / http://localhost:3001/
ProxyPassReverse / http://localhost:3001/
</VirtualHost>
注意:同じサーバーにウェブソケットを使用するサービスが複数ある場合は を実行します。 で区切ってください。
関連
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] package.jsonの各依存関係を最新バージョンに更新する方法は?
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] socket.ioとwebsocketの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】ExpressJSとMeteorJSの比較【終了しました
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] ApacheとNode.jsを同じサーバーで使う