为什么Unicorn不在localhost上提供页面?

时间:2013-03-13 03:37:33

标签: ruby-on-rails heroku unicorn

我一直在使用Thin& Heroku(Cedar)非常高兴我的Rails 3应用程序,但我刚刚切换到Unicorn以使PDFKit正常工作。

Heroku's instructions之后,我在我的应用程序的根目录下创建了我的第一个Procfile,并给出了这个内容:

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

当我在命令行输入foreman start时,我得到:

14:31:46 web.1  | started with pid 699
14:31:48 web.1  | I, [2013-03-13T14:31:48.544196 #699]  INFO -- : Refreshing Gem list
14:31:55 web.1  | I, [2013-03-13T14:31:55.736480 #699]  INFO -- : listening on addr=0.0.0.0:5000 fd=13
14:31:55 web.1  | I, [2013-03-13T14:31:55.740045 #699]  INFO -- : master process ready
14:31:55 web.1  | I, [2013-03-13T14:31:55.899544 #712]  INFO -- : worker=1 ready
14:31:55 web.1  | I, [2013-03-13T14:31:55.900740 #711]  INFO -- : worker=0 ready
14:31:55 web.1  | I, [2013-03-13T14:31:55.911041 #713]  INFO -- : worker=2 ready

如果我尝试在浏览器中加载localhost:3000,则在工头的输出下不会再显示任何内容,并且浏览器会显示:“糟糕!Google Chrome无法连接到localhost:3000。”

似乎Unicorn根本没有使用Port 3000,因为在运行时我仍然可以通过输入rails server来启动Thin,当我这样做时,我可以再次加载localhost:3000浏览器。

发生了什么,我该如何解决?

2 个答案:

答案 0 :(得分:6)

抓一点。我现在可以看到Unicorn发布到localhost:5000。要使其使用localhost:3000,请在您应用的根目录中放置一个.foreman文件,其中包含port: 3000

答案 1 :(得分:1)

你可以在3000港口启动独角兽

unicorn_rails --config-file config/unicorn.rb -p 3000