如何使用“ rails s”在digitalocean上运行rails应用程序(使其成为开发环境)

时间:2018-08-31 14:27:29

标签: ruby-on-rails nginx digital-ocean unicorn

我的问题是我创建了一个droplet,以在digitalocean中开发Rails应用程序。 我使用了一键式Rails Droplet。现在,我想创建的Rails应用程序比该小滴中的默认Rails应用程序要多。

这里的问题是,它随nginx / unicorn一起安装。.他们始终在其配置文件中使用默认rails项目的路径。

现在让我们假设我创建了另一个Rails应用程序(文件),并且我想使用“ rails s”而不是由Droplet创建的默认Rails应用程序来运行它。我该怎么办?

注意:我不想每次决定尝试其他应用时都在配置中更改文件路径

PS:我尝试一次停止一次unicorn / nginx的服务,并且同时使用“ rail s”运行这两个应用程序。.但是它没有用..网页不起作用正在加载

我知道这可能是菜鸟的问题。但是我对这些东西还是有点陌生​​,如果有人可以帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果在服务器上使用rails来运行它,则很有可能将它与Puma一起运行,或者如果您使用的是Rails的旧版本Webrick。在这种情况下,不涉及Unicorn,因为Rails使用其自己的默认Web服务器。如果看到“ rails s”没有在正确的环境中运行,则可能是因为在您的外壳配置文件中设置了RAILS_ENV。您可以这样做:

RAILS_ENV=development rails s

启动控制台。

话虽这么说,默认情况下,rails s在localhost:3000上运行-并且在您描述的情况下,它将在DigitalOcean的localhost-而不是您的本地主机上运行。为了从本地计算机访问它,您需要设置某种反向代理,以允许从本地主机获取与DO的连接。这就是nginx为您所做的-它促进了反向代理。

如果要使用DO服务器作为第二个Rails应用程序的开发机器,则必须在服务器上创建该新Rails应用程序,然后在nginx中创建反向代理设置以定向到它,然后最后创建独角兽设置来为其服务。但是,这是一种不常见的发展方式。我建议您使用本地计算机进行开发,并设置Capistrano或其他部署工具以将其部署到DO。您仍然需要在nginx / unicorn中为第二个应用程序添加设置,但这将使您免于头痛。