Ruby on rails 3 如何使用nginx和Unicorn托管多个Rails应用程序?

Ruby on rails 3 如何使用nginx和Unicorn托管多个Rails应用程序?,ruby-on-rails-3,nginx,unicorn,Ruby On Rails 3,Nginx,Unicorn,如何使用nginx和Unicorn托管多个Rails应用程序 我目前有一个站点由于“”而启动并运行 我已经搜索过了,但我需要一个循序渐进的指南来让这个工作。我发现的结果没有得到很好的解释,无法帮助我理解如何实现这一点。基本上,除了Nginx安装之外,您在运行第一个应用程序时也做了同样的事情。因此,无论第一个应用程序运行的是什么样的Unicorn实例,下一个应用程序都要再次运行它 然后,您可以将另一个服务器块添加到您的Nginx配置中,上游指向新的Unicorn实例 整个机器运行一个Nginx就可

如何使用nginx和Unicorn托管多个Rails应用程序

我目前有一个站点由于“”而启动并运行


我已经搜索过了,但我需要一个循序渐进的指南来让这个工作。我发现的结果没有得到很好的解释,无法帮助我理解如何实现这一点。

基本上,除了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;
    }
  }
}

上面提供的说明还不够。 我的启动文件:/etc/init.d/unicorn多次引用了单个主机的配置。有了这些配置,它就不会为第二台主机服务

所以我创建了一个新的unicorn启动实例

cp/etc/init.d/unicorn/etc/init.d/unicorn\u app\u x

编辑/etc/init.d/unicorn_app_x,将对第一个站点的引用替换为对第二个站点的引用:包括唯一套接字

然后我添加了自动启动的文件:updaterc.dact_unicorn defaults


终于成功了

所以基本上我只是复制我从屏幕上得到的文件,跳过nginx和nodejs的配方,更改设置和cap deploy:install?我没有rails cast pro,所以我看不到Ryan是如何部署的,但是,基本上是的。我还将用我的nginx配置中的一个示例更新我的响应。此外,如果您还没有看过,值得一看的是RVM或RBEnv。我们的一些应用程序有不同的ruby版本要求,RVM/rbenv允许您在不同版本的ruby下轻松运行不同的应用程序!最后,不要忘记服务器上的sudo update rc.d unicorn\u app\u x defaults,否则您将遇到502错误网关,因为unicorn无法启动..可能重复