【问题标题】:Rails 4 Change port number only for production environmentRails 4仅为生产环境更改端口号
【发布时间】:2014-08-24 15:09:02
【问题描述】:

我之前发现了这个问题: How to change Rails 3 server default port in develoment?

但是,我真正想要的只是更改生产环境的端口号。我正在使用 RoR 4。如果我可以在 production.rbin config/environments 上输入一些内容,那就太好了。有没有办法做到这一点?

【问题讨论】:

  • 这不应该是您的应用程序设置的问题,而是您的服务器配置。您如何在生产环境中运行您的应用?

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

简单回答

rails 堆栈包含您的应用程序,然后是运行您的应用程序的服务器(也称为“应用程序服务器”)。该服务器可能是 webrick(在生产中不是一个好主意)、瘦、gunicorn、passenger 等。

您应该告诉服务器在哪个端口下运行。您(可能)需要在 Rails 外部指定这个 - 而不是在 config/production.rb 中,因为当 Rails 启动时,它已经在某个应用程序服务器中运行。

通过示例进行更深入的研究:

让我们以 Heroku 为例,因为那里的端口号本质上是随机的(至少从我们观察的角度来看)。

Heroku 会为我们选择一个随机端口,然后通过PORT 环境变量告诉我们。使用 Heroku,您需要一个 Procfile 来告诉它要启动哪些服务,而您的 Procfile 可能看起来像这样:

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

请看这里,我们使用-p $PORT 告诉 unicorn(本示例中的应用服务器)在 Heroku 提供给我们的某个端口上运行。

回到你的问题:

无论您如何在生产环境中启动应用程序服务进程,您都应该告诉它为您的 Web 服务器指定端口号。有很多方法可以在生产级别启动您的应用程序服务流程:从新贵(内置于 Ubuntu)到 supervisord 到上帝……所有这些方法都运行命令并确保流程保持正常(生产的重要组成部分)级别部署 ;) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多