Ruby Rack更改端口

时间:2016-01-05 08:18:36

标签: ruby-on-rails ruby sinatra rack

我有一个Ruby Web 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文件的情况下更改端口?

1 个答案:

答案 0 :(得分:3)

所以我决定提交Rack的拉取请求以修复这种奇怪的行为。阅读代码我发现了一些非常奇怪的东西,代码应该按照我的预期工作:|

它支持配置文件(config.ru)上的命令行参数! 深入研究代码提交后发现,这些更改尚未合并到任何 stable 版本中(1.6.4)。它实际上是版本 2.0.0.alpha 。这显然不是生产准备。

这是提交:https://github.com/rack/rack/commit/d924f8074e0b3d6c49881c33f983ef323258a941#diff-b578c27b65b1d4a848181b8c1ca082fdL300

答案是:在1.x版本中它是不可能的,我应该更改config.ru或忘记这一点:(