18

私は、websocket を使用する Perl Mojolicious プロジェクトに取り組んできました。Apache を実行している共有サーバーで起動し、proxyPass と proxyPassReverse を使用して、Hypnotoad で実行する Mojolicious コードの URL をきれいにしたいと考えています。

以下のように設定しています。

アパッチの URL:

mydomain.com

ヒプノトードのURL:

mydomain.com:8080

次のApacheエントリを使用して、Hypnotoadサーバーをリバースプロキシできます

project.mydomain.com

apache.conf エントリ

<VirtualHost *:80>
  ServerName project.mydomain.com
  DocumentRoot /var/www/project
  <Directory /var/www/project/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://mydomain.com:8080/ keepalive=On
  ProxyPassReverse / http://mydomain.com:8080/
  RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>

ただし、次を使用すると、websocket リクエストで 404 エラーが発生します。

ws://project.mydomain.com/get-data

私が使用すると302エラー:

ws://mydomain.com:8080/get-data

Websocketが認証をチェックしなかったので、これは問題にはならないと思いますが、Mojoliciousルートを使用して、Websocket経由で投稿できることを確認します。

私が見る限り、Apache はリバース プロキシ WebSocket をサポートしていません。apache/httpd conf ファイル内。

本番環境で安定しているApacheを使用して、これに対する使用可能なソリューションを見つけた人はいますか?

4

3 に答える 3

16

3 月に、 Websocket を正しくプロキシできるようにするパッチが Jim Jagielski によってApache トランクにコミットされました。このパッチは、 mod_proxy が "ws" および "wss" プロトコルで動作できるようにするproxy_wstunnel と呼ばれる新しいサブモジュールを追加します。

モジュールは公式の Apache リリースにはまだ含まれていないため (2013 年 6 月 8 日現在)、自分でコンパイルする必要があります。Voyageur のブログでは Apache 2.2 のプロセスについて説明されていますが、Apache 2.4 の方が簡単なはずです。

于 2013-06-08T10:39:31.563 に答える
15

Apache httpd 2.4.6 には、WebSocket リクエストのプロキシが含まれています。

于 2013-08-08T14:11:35.280 に答える
-5

これはあなたが探しているものかもしれません。見てみましょう: https://npmjs.org/package/npr

于 2013-06-21T03:52:07.300 に答える