Rails应用程序具有多个域

时间:2017-09-21 13:46:28

标签: ruby-on-rails nginx puma mina

我陷入了困境。我有一个Rails应用程序,运行在DO droplet和10多个域,Nginx作为Web服务器和Puma。网站之间的区别在于每个域及其数据库的样式。所以我无法弄清楚如何让它工作。 我可以看到,我应该为每个站点创建一个单独的套接字并配置重定向。

在本地它的工作方式如下:在.env文件中我定义了一些网站,即domain1.com和应用程序选择某种风格和。 抱歉错误,我可能错了,我不是开发人员,我只需要部署它。此时它正在Heroku上托管,单独的应用程序为单独的网站。

2 个答案:

答案 0 :(得分:0)

您可以为不同的域创建不同的任务。每个任务都只需设置适当的变量。

查看https://github.com/mina-deploy/mina/blob/master/docs/cookbook.md#multi-environment-deploy

答案 1 :(得分:0)

Rails使仅使用route.rb文件即可轻松处理多个域。您可以向路由添加约束,以使这些端点和控制器仅响应对特定域的请求。

约束看起来像这样:

constraints(ShopDomain) do
  resources :shop
  get '/subscription', to: 'shop#subscription'
  root to: 'shop#index'
end

您可以定义约束,例如域或子域是否与字符串匹配。看起来可能像这样:

class ShopDomain
  def self.matches? request
    request.subdomain == 'shop'
  end
end

在您的情况下,每个站点都有自己的控制器,这些控制器具有各自的视图和样式。

我在博客上对此策略进行了更深入的描述, here