gpt4 book ai didi

ruby-on-rails - (使用 phusion passenger + Nginx)运行具有相同端口(80)的多个实例名称的相同 Rails 应用程序

转载 作者:行者123 更新时间:2023-12-04 07:13:54 24 4
gpt4 key购买 nike

注意:我是 ruby​​ on rails 和服务器托管的新手,我无法表达我的看法作为问题,如果我错了或纠正我,请原谅我。

您好,我有一个使用 ruby​​ on rails 开发的产品,将托管在具有 32 GB Ram 和 8 核服务器处理器的专用服务器中。每个客户端都应该有单独的数据库和单独的 rails 实例。我正在复制 - 使用单独的文件夹为每个客户端复制代码并提供不同的数据库名称,因此每个客户端都充当不同的实例。

例如:

我有一个主临时域

www.product.com

对于每个客户端,我需要将单独的子域映射到具有相同端口 (80) 的相同服务器但具有不同的 rails 实例名称

www.client1.product.com
www.client2.product.com
www.clientn.product.com

据我所知,如果我启动 rails 实例,每个实例都将从单独的端口号开始

client1 with start at port 3001
client2 with start at port 3002
client3 with start at port 3003

我的问题是如何将端口 80 的所有实例映射到适当的相同子域

如果我访问

www.client4.product.com ,我需要让应用程序在端口 3004 上运行

更新:

任何人都可以为上述场景发布 phusion passenger + Nginx 的步骤

最佳答案

这是 nginx + passenger 的最小服务器 block 示例

server {
listen 80;
server_name client1.foobar.com;
root /var/www/rails/client1/current/public;

passenger_enabled on;
}

配置 nginx 的通常方法是创建一个子目录“sites-available”,您将包含此代码段的名为“client1.foobar.com”的文件放入其中,然后在另一个名为“sites”的子目录中为该文件创建一个符号链接(symbolic link)-启用”。最后,在 http block 内的 nginx.conf 中添加以下行

include /path/to/your/sites-enabled/*;

不要忘记重新加载/重启你的 nginx。

这种使用符号链接(symbolic link)的方式允许您通过删除符号链接(symbolic link)轻松禁用您想要的任何站点,而不会丢失您的配置文件。

您可以在此处找到一些示例和更多文档:http://www.modrails.com/documentation/Users%20guide%20Nginx.html

关于ruby-on-rails - (使用 phusion passenger + Nginx)运行具有相同端口(80)的多个实例名称的相同 Rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com