在一台服务器上使用多个端口托管多个 Rack 应用程序(使用 Apache 和 Passenger)

在一台服务器上使用多个端口托管多个 Rack 应用程序(使用 Apache 和 Passenger)

我已经在线搜索并阅读了 Apache、Passenger、Rack 等的文档,但尚未找到解决我的问题的方法。

我有几个基于 Rack(ruby)的应用程序,位于

/home/web/sites/app1
/home/web/sites/app2
/home/web/sites/app3

app1 是 Sintra 应用程序,app2 是 Padrino,app3 是 Rails。

我想在不同的端口下运行这些应用程序(假设服务器 IP 是 50.60.70.101):

50.60.70.101:4567 -> app1
50.60.70.101:3000 -> app2
50.60.70.101:80   -> app3

配置 Apache 的虚拟主机文件以实现此目的的正确方法是什么?

我在 /etc/apache2/sites-available/ 中有 3 个文件具有这种类型的配置(IP 已更改):

<VirtualHost *:4567>
    RackEnv         production

    DocumentRoot    /home/web/sites/app1/public
    <Directory      /home/web/sites/app1/public>
        Order   allow,deny
        Allow   from all
        Options -MultiViews
        #AllowOverride All
    </Directory>
</VirtualHost>

但是我无法访问 50.60.70.101:4567 上的 app1(不过 app3 可以在端口 80 上运行)。

答案1

您需要使用指令明确告诉 Apache 监听这些端口Listen;请查看绑定到地址和端口

相关内容