0

127.0.0.1:3999 をリッスンする NodeJS で Meteor アプリケーションを実行する Debian ホストがあります。また、Apache を歓迎し、Meteor アプリケーションにプロキシするドメイン レジスタhttps://example.comもあります。

DDP 接続に問題があります。私の接続リンクはws://example.com/websocket

ProxyPass の設定を次のように設定しました。

 <VirtualHost *:443>
      ServerName example.com
      ServerAlias www.example.com

      SSLEngine on
      SSLProxyEngine On
      ProxyRequests Off

      SSLCertificateFile /etc/apache2/ssl/www.example.crt
      SSLCertificateKeyFile /etc/apache2/ssl/www.example.key
      SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem

      ProxyPass /websocket ws://localhost:3999/websocket
      ProxyPassReverse /websocket ws://localhost:3999/websocket

      ProxyPassMatch ^/sockjs/(.*)/websocket ws://localhost:3999/sockjs/$1/websocket
      ProxyPass / http://localhost:3999/
      ProxyPassReverse / http://localhost:3999/

      BrowserMatch "MSIE [2-6]" \
           nokeepalive ssl-unclean-shutdown \
           downgrade-1.0 force-response-1.0
      # MSIE 7 and newer should be able to use keepalive
      BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
 </VirtualHost>

 <VirtualHost *:80>
      ServerName example.com
      ServerAlias www.example.com
      ProxyRequests off


       RewriteEngine on
       ReWriteCond %{SERVER_PORT} !^443$

       # This allows DDP clients like ObjectiveDDP and Meteor-Unity to connect
       RewriteRule ^/websocket wss://%{HTTP_HOST}/websocket [NC,R,L]

       # This allows the meteor webapp to connect
       RewriteRule ^/sockjs/(.*)/websocket wss://%{HTTP_HOST}/sockjs/$1/websocket [NC,R,L]
       RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
 </VirtualHost>

4

1 に答える 1

0

私が見つけた解決策は、debian を使用せず、代わりに ubuntu を使用することです。これにより、Apache 2.6 が利用可能になります。mod_proxy_wstunnel は v2.6 で問題を解決しました。

于 2015-11-01T19:09:12.233 に答える