2017-11-15 1 views
0

私はnode.jsアプリケーションを実行するために使用するサーバーを持っています。そのうちの1つは私のオフィスで使用するメッセージングアプリケーション(スラックに似ています)です。私がアプリを実行すると、アプリケーションはhttp://0.0.0.0:8000/に到達するので、外部(サーバシステムの外から)に到達するために、confファイルにVirtualHostを使ってポート転送を設定します。 Apache2.4.18を使用してWebサーバーを実行します。 、
<VirtualHost *:80> ServerAdmin [email protected] ServerName messenger.mydomain.com ProxyPreserveHost On # setup the proxy <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass/http://0.0.0.0:8000/ ProxyPassReverse/http://0.0.0.0:8000/ </VirtualHost>同じIPとWebSocketで新しいポートにサブドメインを転送するエラー

接続が正常に動作し、私はちょうど罰金のNoSQLデータベースファイルに書き込むことができます: は、詳細については、Ubuntuの16.04 LTS

にPM2を使用して、その実行には私はこのような設定ファイルを設定しますしかし項目は、私は本当に多くの経験リバースプロキシを設定し、WebSocketを秒に対処していないため、このエラーにNoSQLのデータベースから

WebSocket connection to 'ws://messenger.mydomain.com/' failed: Error during WebSocket handshake: Unexpected response code: 200

を読んなっているように見えるいけませんoいくつかの広範囲にわたるグーグル・グーグルの後で、WebSocketを動作させるために何が必要なのか正確にはわかりません。私はPHPとクランクのためのラチェットのようなものを学ぼうとしましたが、正直言って私は迷っています。誰かが何らかの方向を与えることができますか

答えて

0

私はそれを解決しました。

私はa2enmod rewrite PSこのコマンドを実行するために必要な:

RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] RewriteRule .* ws://localhost:8000%{REQUEST_URI} [P]

:あなたはすでに私のsubdomain.mydomain.com.confファイルに追加するとa2enmod proxy a2enmod proxy_wstunnel a2enmod proxy_http

を実行します私は自分のサーバー上でポート8000​​をローカルに使用していたので

これにより問題が解決され、すべてが適切に読み込まれるようになりました。

だから私のapache2の/サイト利用可能/ subdomain.mydoamin.com.confは次のようになります。

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName subdomain.mydomain.com 

RewriteEngine on 
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] 
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] 
RewriteRule .* ws://localhost:8000%{REQUEST_URI} [P] 
    # setup the proxy 
    <Proxy *> 
     Order allow,deny 
     Allow from all 
    </Proxy> 
    ProxyPass/http://0.0.0.0:8000/ 
    ProxyPassReverse/http://0.0.0.0:8000/ 
</VirtualHost> 

それから私はservice apache2 restart
すべてを走った良かったです。

関連する問題