部署了两个 Rails 应用程序 - 如何更改默认应用程序?

Posted

技术标签:

【中文标题】部署了两个 Rails 应用程序 - 如何更改默认应用程序?【英文标题】:Two Rails apps deployed - How do I change the default App? 【发布时间】:2014-03-31 16:22:04 【问题描述】:

我已经按照 Ryan Bate 的指南部署了两个完全不同的 Rails 应用程序一个 VPS(节省成本,用于开发小型家庭项目)。链接到 railscast:http://railscasts.com/episodes/335-deploying-to-a-vps

我的问题是:默认应用是我第一个部署的,所以当我访问IP地址时,就是显示的应用。如何将服务器配置为

    使用子域(不确定仅使用 IP 地址是否可行) 更改默认应用

nginx.conf 中玩耍并阅读此堆栈 q:NGinx Default public www location?

我似乎无法解决它!提前致谢。

【问题讨论】:

【参考方案1】:

我想我明白你想做什么。您的默认应用程序术语让我感到困惑。让我们把它扔掉,只是说你想将两个不同的 Rails 应用程序部署到不同的域——sub 或 TLD,没关系。另外,我认为您希望将它们部署到同一个 VPS 服务器。 Ryan 的截屏视频不包括如何执行此操作。

您可能正在寻找的是如何使用 nginx 托管多个站点(和 rails 应用程序)。就像 Ryan 的截屏视频一样,要让一切正常运行,需要执行许多步骤。我建议您首先关注域设置 (DNS),然后是 nginx 设置。最后离开为您的 Rails 应用程序提供独角兽。

第一

设置您的域和子域以指向 VPS。一种方法是创建指向您的 VPS IP 的 DNS A 记录。

第二

配置 nginx 为两个站点提供服务。为了让您朝着正确的方向开始,我建议您阅读以下内容:multiple websites on nginx & sites-available。听起来您已经让 nginx 在您的域上为您的应用程序提供服务。所以步骤可能是这样的:

 $ cd /etc/nginx/sites-available/
 $ cp default subdomain.example.com

相应地编辑 subdomain.example.com。有关详细信息,请参阅 nginx 文档。另外,确保 /sites-available/default 和 /sites-available/subdomain.example.com 没有使用 _ 作为 server_name 指令。将它们设置为各自的域名。另外,现在将 root 指向可以提供 index.html 文件的某个位置(即暂时不要使用 rails)

 $ cd /etc/nginx/sites-enabled/
 $ ln -s ../sites-available/eden.jrutherford.com .
 $ service nginx restart

如果此时一切顺利,您应该可以在浏览器中访问这两个域并让 nginx 提供内容。

第三

为您的子域配置一个新的独角兽。很抱歉,我没有这一步的具体提示。按照 Ryan 的教程,搜索 google,unicorn 网站。

祝你好运。

【讨论】:

以上是关于部署了两个 Rails 应用程序 - 如何更改默认应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Rails 中 Active Record 的默认时区?

如何在 OpsWorks 部署到 Rails 堆栈期间始终运行迁移

Rails 5 和设计:如何在不更改默认策略的情况下禁用基于令牌的策略上的会话

AWS OpsWorks:成功的 Ruby on Rails 默认层部署在浏览器中显示 404 错误

如何更改 Rails 脚手架中的默认模型模板?

在 Ruby on Rails 中使用 Heroku