【问题标题】:How to run socket.io on subdomain?如何在子域上运行 socket.io?
【发布时间】:2018-04-07 23:17:12
【问题描述】:

我不确定它实际上是否是子域,但 '/etc/apache2/sites-available/ooo-default.conf' 文件包含以下代码 -

<VirtualHost *:80>
RewriteEngine on
RewriteCond %{SERVER_NAME} =app.mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

我的项目保存在 '/var/www/html/beta' 目录下,没有 'app' 目录出现在 '/var/ www/html'

如何在这里运行socket io?我的服务器是-Linux Ubuntu 16.04

我找到以下解决方案 -

<VirtualHost *:80>
    ServerName app.mydomain.com

    <Location "/">
        ProxyPreserveHost On
        ProxyPass http://localhost:3000/
        ProxyPassReverse http://localhost:3000/
    </Location>
</VirtualHost>

但它不起作用,当我在 '/etc/apache2/sites-available/ooo-default.conf' 文件中添加此代码时,apache2 停止工作。请帮忙。

【问题讨论】:

  • 您确定您已启用mod_proxy 吗?另外我相信它应该是ProxyPass / http://localhost:3000/(注意url之前的/),反向代理也应该是类似的。
  • 不,我没有启用它,它会安全吗?根据stackoverflow.com/questions/5606226/send-subdomain-to-node-js,我必须启用更多的apache mod。

标签: node.js apache ubuntu socket.io


【解决方案1】:

使用以下步骤:

1) 更新虚拟文件:-

 <VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName mysite.com
    ServerAlias www.mysite.com
  ProxyRequests Off Order deny,allow Allow from all
 <Location />
        ProxyPass http:// mysite.com:8000/
        ProxyPassReverse http:// mysite.com:8000/
    </Location>

</VirtualHost>

2) 启用必要的 Apache 模块

要启用这四个模块,请依次执行以下命令。

sudo a2enmod proxy

sudo a2enmod proxy_http

sudo a2enmod proxy_balancer

sudo a2enmod lbmethod_byrequests

3) 要使这些更改生效,请重新启动 Apache。

sudo systemctl restart apache2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 2022-11-09
    • 2019-01-11
    • 2020-03-04
    • 2014-11-11
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多