ruby-on-rails – 用Nginx解释负载平衡,就像我五岁一样

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 用Nginx解释负载平衡,就像我五岁一样前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我发现了很多关于如何使用上游服务器将Nginx配置为负载均衡器的DIY帖子和教程:

upstream backend  {
  ip_hash;
  server 1.2.3.4;
  server 1.2.3.5;
  server 1.2.3.6;
}

server {
  location / {
    proxy_pass  http://backend;
  }
}

但就配置这种架构而言,这是我能找到的程度.目前我有一个部署到3个后端VPS服务器的rails应用程序,我正在使用Unicorn作为我的HTTP服务器.我是否需要在我的负载平衡服务器上安装我的ruby以及我的rails应用程序和独角兽?我是否需要在每个上游服务器上安装Nginx?如果是这样,我该如何配置它们?如果我在建筑中引入类似Varnish的东西,它会去哪里?在负载平衡器或每个后端之前?

这是我如何组织一切的视觉效果

                                       +---> backend1 <---+
                                       |                  |
[requests] <---> [Nginx load-balancer]-+---> backend2 <---+-[Database server]
                                       |                  |
                                       +---> backend3 <---+
最佳答案
简短回答:

Nginx实际上只有一个工作,那个工作是接受传入的请求并将其交给后端服务器.

鉴于此,您的前端服务器只需要运行Nginx,而您的后端服务器只需要运行rails.合理?

现在,如果您的后端和前端都在同一台服务器上运行,那么,当然,它也必须安装在那里,但是从图中我不相信是这种情况.

如果您引入了一个HTTP缓存软件,例如Varnish,它将介于Nginx和Rails之间,很可能也会在后端服务器上运行.因此请求将遵循以下路径:

Nqinx -> Varnish -> Rails

猜你在找的Nginx相关文章