如何使用nginx和Unicorn托管多个Rails应用?
由于“Deploying to a VPS”,我目前正在运行一个网站。
我已经搜索过,但我需要一步一步的指导才能使其正常运行。我发现的结果并没有得到很好的解释,以帮助我理解如何实现这一目标。
答案 0 :(得分:14)
基本上,你做了同样的事情,让第一个应用程序运行的所有内容减去Nginx的安装。因此,无论您在第一个应用程序运行时获得了Unicorn实例,请再次为您的下一个应用程序执行此操作。
然后,您可以将另一个服务器块添加到您的Nginx配置中,其中一个上游指向该新的Unicorn实例。
运行整个机器的一个Nginx可以正常运行,每个应用程序运行一个Unicorn。
希望这会有所帮助。
以下是为Nginx添加服务其他应用程序需要添加的附加服务器块的示例:
upstream unicorn_app_x {
server unix:/path/to/unicorn/socket/or/http/url/here/unicorn.sock;
}
server {
listen 127.0.0.1:80;
server_name mysitehere.com aliasfor.mysitehere.com;
root /path/to/rails/app/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://unicorn_app_x;
break;
}
}
}
答案 1 :(得分:0)
上面提供的说明还不够。 我的启动文件:/etc/init.d/unicorn有几个引用单个主机的配置。使用这些配置,它不会为第二个主机提供服务。
所以我创建了一个新的独角兽启动实例。
cp /etc/init.d/unicorn /etc/init.d/unicorn_app_x
编辑/etc/init.d/unicorn_app_x,用第二个引用替换对第一个站点的引用:包括唯一的套接字。
然后我自动将文件添加到启动:update-rc.d act_unicorn defaults
它终于奏效了!