我一直在使用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
浏览器。
发生了什么,我该如何解决?
答案 0 :(得分:6)
抓一点。我现在可以看到Unicorn发布到localhost:5000
。要使其使用localhost:3000
,请在您应用的根目录中放置一个.foreman
文件,其中包含port: 3000
。
答案 1 :(得分:1)
你可以在3000港口启动独角兽
unicorn_rails --config-file config/unicorn.rb -p 3000