【问题标题】:Forwarding a subdomain to new port on same IP and Websocket error将子域转发到相同 IP 和 Websocket 错误的新端口
【发布时间】:2017-11-15 22:40:27
【问题描述】:

我有一个用于运行 node.js 应用程序的服务器。其中之一是我们在办公室使用的消息应用程序(类似于 slack)。当我运行该应用程序时,可以通过http://0.0.0.0:8000/ 访问该应用程序,因此为了从外部(从服务器系统外部)访问它,我在 conf 文件中使用 VirtualHost 设置了端口转发。顺便说一下,我使用 Apache2.4.18 运行网络服务器。 有关更多详细信息,它在 Ubuntu 16.04 LTS 上使用 pm2 运行

我这样设置配置文件:
<VirtualHost *:80> ServerAdmin me@mydomain.com 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>

连接成功,我可以正常写入 NoSQL 数据库文件,但由于此错误,似乎没有从 NoSQL 数据库中读取项目

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

我在设置反向代理和处理 WebSocket 方面并没有太多经验,所以经过一番广泛的谷歌搜索后,我不确定我需要什么才能让 WebSocket 正常工作。我尝试学习像棘轮一样的 PHP 和叮当声,但老实说我不知所措。任何人都可以提供一些方向吗?

【问题讨论】:

    标签: node.js apache subdomain portforwarding


    【解决方案1】:

    我已经解决了。

    我需要运行这个命令a2enmod rewrite PS:确保你已经运行a2enmod proxy a2enmod proxy_wstunnel a2enmod proxy_http

    然后添加到我的 subdomain.mydomain.com.conf 文件中:

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

    因为我在我的服务器上本地使用端口 8000。

    这解决了问题并允许所有内容正确加载。

    所以我的 apache2/sites-available/subdomain.mydoamin.com.conf 看起来像这样:

    <VirtualHost *:80>
        ServerAdmin me@mydomain.com
        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
    一切都很好。

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 2017-07-18
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      相关资源
      最近更新 更多