加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:17:05 所属栏目: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; }} 但就配置这种架构而言,这是我能找到的

我发现了很多关于如何使用上游服务器将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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读