2016-04-07 6 views
0

私はこのようないくつかの質問があることを知っていますが、私はサーバーのルートにないプロジェクトのために私の問題を解決する1つを見つけることができません。 は、私は次のような状況があります。socket.io(ルートにないプロジェクト)用のApacheのプロキシ設定

  • 0.0.0.0/project1
  • 0.0.0.0/project2
  • ...

I:私はのようないくつかのプロジェクトを実行しているApacheサーバを持っていますnode.jsプロジェクトを追加して、それをnodeprojectとしましょう。 ProxyPassでは、0.0.0.0/nodeprojectへのリクエストを0.0.0.0:8080に渡しています。ここでは、自分のノードサーバーが実行されています。これはsocket.ioのwebsocketの設定を除いてすべて正常に動作しています。私の/etc/apache2/apache2.confファイルでは、私はプロキシを行うためにこのコードを配置しました。 (mod_proxy_wstunnelはenabeldです)基本的にはhereからコピーしました。

ProxyRequests off 
ProxyVia on 

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/nodeproject/socket.io   [NC] 
RewriteCond %{QUERY_STRING} transport=websocket [NC] 
RewriteRule /(.*)   ws://localhost:8080/$1 [P,L] 

ProxyPass  /nodeproject/socket.io http://localhost:8080/socket.io 
ProxyPassReverse /nodeproject/socket.io http://localhost:8080/socket.io 

<Location /nodeproject> 
    ProxyPass http://localhost:8080 
    ProxyPassReverse http://localhost:8080 
</Location> 

失敗リクエストは、次のようになります。

ws://0.0.0.0/nodeproject/socket.io/?EIO=3&transport=websocket&sid=MDuVcHmt3T1sa8ruAAAa 

と私は不正な要求400の応答を取得します。

私はこの種のものを構成する専門家ではありませんが、どこが間違っていましたか?

ありがとうございます!

答えて

3

書き換え条件は/etc/apache2/apache2.confではなく、仮想ホストディレクティブ(/etc/apache2/sites-available/000-project-whatever.conf)に記述してください。

私の小さなプロジェクトの例です。

<VirtualHost *:80> 

ServerName sockey.api 
ServerAdmin [email protected] 
DocumentRoot /var/www/sockey.api 
<Directory /var/www/sockey.api> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride All 
      Order allow,deny 
      allow from all 
</Directory> 

ErrorDocument 404 /index.html 
ErrorLog ${APACHE_LOG_DIR}/sockey.api.error.log 
CustomLog ${APACHE_LOG_DIR}/sockey.api.access.log combined 

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/socket.io   [NC] 
RewriteCond %{QUERY_STRING} transport=websocket [NC] 
RewriteRule /(.*)   ws://localhost:8081/$1 [P,L] 

ProxyPass  /socket.io http://localhost:8081/socket.io 
ProxyPassReverse /socket.io http://localhost:8081/socket.io 

</VirtualHost> 
+0

ありがとうございました。それは常に差がないthougtに固定されています... – giggo1604

+0

最後に解決策が見つかりました。ありがとう@ sn0r –

関連する問題