我正在尝试在Nginx代理后面设置Discourse ,通过Thin提供服务并通过Foreman启动。
所以我有一个Procfile
这样的:
web: thin start -p $PORT --socket tmp/sockets/thin.sock
sidekiq: bundle exec sidekiq -e $RAILS_ENV
clockwork: bundle exec clockwork config/clock.rb
conf
还有一个指向套接字的 nginx文件:
upstream discourse {
server unix:///var/www/discourse/tmp/sockets/thin.sock;
}
这一切都很好......只要我只想要一个连接到套接字的网络工作者。如果我只是thin
自己运行,我可以加入 a-s4
并获得四个瘦工人,它甚至可以处理套接字文件,创建thin.0.socket
,thin.1.socket
等。但是以thin
这种方式运行会在他们自己的进程中启动工人,然后退出,所以如果我把它-s4
放进我的Procfile
,foreman
认为有什么东西死了,然后瀑布,也把它自己弄下来了。
只是告诉foreman start -c web=2
带来了两个进程......但它们都指向同一个sock
文件,而且似乎都不起作用。
我敢肯定有一个简单的方法来处理这个,但我似乎无法弄清楚魔法咒语。我在这里做错了什么?