Ruby 换架口
Ruby Rack change port
我有一个 Ruby 网络 API 并使用 Rack,config.ru
文件如下所示:
#\ -p 8080 -o 0
run App::API
它运行良好,但如果我想使用 rackup
参数更改 Web 服务器的端口,它将无法运行。 config.ru
中的第一行参数似乎覆盖了命令行参数。我在 Rack 文档中找不到任何解释此行为的内容。
问题是如果我这样执行 Rack 服务器:
bundle exec rackup -p 8000
我希望它绑定到端口 8000
但它仍然绑定到端口 8080
。如何在不更改 config.ru
文件的情况下更改端口?
所以我决定为 Rack 提交一个 pull request 来修复这个奇怪的行为。阅读代码我意识到一些非常奇怪的事情,代码应该按我的预期工作:|
它比配置文件更喜欢命令行参数 (config.ru
)!
深入研究代码提交表明,此更改尚未合并到任何 stable 版本 (1.6.4
) 中。它实际上是 2.0.0.alpha 版本。这显然还没有准备好生产。
所以答案是:在 1.x 版本中是不可能的,我应该更改 config.ru
或忘记它 :(
我有一个 Ruby 网络 API 并使用 Rack,config.ru
文件如下所示:
#\ -p 8080 -o 0
run App::API
它运行良好,但如果我想使用 rackup
参数更改 Web 服务器的端口,它将无法运行。 config.ru
中的第一行参数似乎覆盖了命令行参数。我在 Rack 文档中找不到任何解释此行为的内容。
问题是如果我这样执行 Rack 服务器:
bundle exec rackup -p 8000
我希望它绑定到端口 8000
但它仍然绑定到端口 8080
。如何在不更改 config.ru
文件的情况下更改端口?
所以我决定为 Rack 提交一个 pull request 来修复这个奇怪的行为。阅读代码我意识到一些非常奇怪的事情,代码应该按我的预期工作:|
它比配置文件更喜欢命令行参数 (config.ru
)!
深入研究代码提交表明,此更改尚未合并到任何 stable 版本 (1.6.4
) 中。它实际上是 2.0.0.alpha 版本。这显然还没有准备好生产。
所以答案是:在 1.x 版本中是不可能的,我应该更改 config.ru
或忘记它 :(