Meteor DDP SSL/Apache Proxy Connection



我有 Debian 主机在 NodeJS 上运行我的 Meteor 应用程序,它侦听:127.0.0.1:3999我还有一个域名注册 https://example.com,欢迎Apache并代理我的Meteor应用程序。

我的DDP连接有问题。我的连接链接ws://example.com/websocket

我将代理通行证设置设置如下:

 <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>

我找到的解决方案不是使用 debian,而是使用 ubuntu,因此可以使用 Apache 2.6。 mod_proxy_wstunnel已经解决了 v2.6 的问题。

最新更新