Nginx中怎么实现集群和负载均衡

  介绍

本篇文章给大家分享的是有关Nginx中怎么实现集群和负载均衡,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Nginx的集群和负载均衡

 Nginx中怎么实现集群和负载均衡”> </p> <h3>负载均衡配置案例1 </h3> <h4>设置上游服务器:</h4> <pre> #,设置上游服务器:
  upstream  imgserver {
  #重权重maxfails错误次数,fail_timeout超时时间.down 表示单前的服务器暂时不参与负载。其它所有的非备份机器下降或者忙的时候,请求备份机器只,在上游里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器可以解决会话问题只粘基于饼干的负载均衡。
  ip_hash;, #,建议不要和粘性同时使用;
  粘性的;,#建议不要和ip_hash同时使用;
  server  192.168.1.100:80,重量:2,max_fails=2, fail_timeout=30年代;
  server  192.168.1.101:80,重量:2,max_fails=2, fail_timeout=30年代;
  server  127.0.0.1:7070 备份;
  server  127.0.0.1:9090 ,,
  }</pre> <h4>下游调用</h4> <pre> #,下游调用:
  的位置~ \。(jpg | jpeg | png | gif), {
  #转发到上游服务器的地址池
  proxy_pass  imgserver;
  #,将用户的IP信息同时带过去,要不然,后端服务器获得的IP地址将是代理服务器的IP;
  proxy_set_header  X-Forwarded-For  remote_addr美元;
  }</pre> <h3>负载均衡案例2,通过ip_hash </h3> <pre> ubuntu 下负载均衡搭建
  1准备条件,服务器最少3台
  
  修改配置文件:
  cd /etc/nginx/conf.d/1 .添加一个配置文件
  upstream  a.com  {
  ,,server ,服务器IP:端口;
  ,server , 127.0.0.1:80;
  ,,server , 127.0.0.1:8080;
  }
  
  2,配置虚拟主机
  
  vim /etc/nginx/网站/违约
  
  服务器{
  ,,,listen  80;
  ,,,server_name  a.com;
  ,,,的位置/,{
  proxy_pass ,,,,,,,, http://自己配置;(转发到哪里)
  ,,,}
  
  ln  -s /etc/nginx/网站/{nidepaizhi},/etc/nginx/sites-enabled///检查配置文件是否有错
  nginx  -t //重启服务器
  nginx  -s 重新加载
  
  3其他参数配置
  扩展:
  
  1 .轮询(默认方式)
  
  每个请求按时间顺序逐一分配到后端服务器,如果后端服务器掉,能自动剔除
  
  2,重量
  
  指定轮询几率、体重和访问比率成正比,用于后端服务器性能不均的情况。
  ,upstream  bakend  {
  ,,,,,server 服务器IP:端口,概率值;
  ,,,,,server  127.0.0.1:80 体重=10;
  ,}
  3,ip_hash
  
  每个请求按访问ip的散列结果分配,
  
  这样每个访客固定访问一个后端服务器,可以解决会话的问题
  
  upstream  resinserver {
  
  ,,,,ip_hash;
  ,,
  ,,server  192.168.159.10:8080;
  ,,
  ,,server  192.168.159.11:8080;
  
  }
  
  4,
  
  ,位置/,{
  ,,,,,,,proxy_pass ,,,,,,,, http://a.com;,,, #这个地址一定是上面定义的负载均衡的名字
  ,,,,,,,,,,proxy_set_header  Host ,,,,,,,,,,,,主机美元;
  ,,,,,,,,,,proxy_set_header  X-Real-IP ,,,,,,, remote_addr美元;
  ,,,,,,,,,,proxy_set_header  X-Forwarded-For , proxy_add_x_forwarded_for美元;
  ,,,}</pre> <h3>均衡策略:</h3> <>之前我之前所常用的策略:
  基于cookie值区别用户做负载均衡。(在饼干储存sessionID,通过sessionID进行判断)
  通过复述,直接使用复述,保存用户的的登录信息进行判断。
  nginx可以根据客户端IP进行负载均衡,在上游里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个,可以解决会话问题. .
  粘性的基于饼干的负载均衡。
  
  我现在的均衡策略:
  就是不配粘性或ip_hash直接用按权重轮训就行了,,会话同步什么的都不用担心。现在都把会话存在复述中了。</pre> <p>百度转载的五种均衡分配方式:nginx可以根据客户端IP进行负载均衡,在上游里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。nginx的上游目前支持的5种方式的分配</p> <pre> 1,轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器掉,能自动剔除又是;
  {upstream  backserver 
  server  192.168.0.14,
  server  192.168.0.15,
  },
  
  2、指定权重
  指定轮询几率、体重和访问比率成正比,用于后端服务器性能不均的情况又是;
  {upstream  backserver 
  server  192.168.0.14 体重=10,
  server  192.168.0.15 体重=10,
  },
  
  3、IP绑定ip_hash
  每个请求按访问ip的散列结果分配,这样每个访客固定访问一个后端服务器,可以解决会话的问题又是;
  {upstream  backserver 
  ip_hash;,
  server  192.168.0.14:88,
  server  192.168.0.15:80,
  },
  
  4、公平(第三方)
  按后端服务器的响应时间来分配请求,响应时间短的优先分配又是;
  {upstream  backserver 
  server  server1,
  server  server2,
  公平的,,
  },
  
  5、url_hash(第三方)
  按访问url的散列结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效又是;
  {upstream  backserver 
  server  squid1:3128,
  server  squid2:3128,
  hash  request_uri;美元,
  crc32; hash_method 
  },
  
  在需要使用负载均衡的服务器中增加,
  
  proxy_pass  http://backserver/, #转发到哪里去
  backserver {upstream 
  ip_hash;,
  server  127.0.0.1:9090 ,, (down 表示单前的服务器暂时不参与负载),
  server  127.0.0.1:8080 体重=2;,(weight 默认为1.重量越大,负载的权重就越大),
  server  127.0.0.1:6060,
  server  127.0.0.1:7070 备份;,(其它所有的非备份机器下降或者忙的时候,请求备份机器),
  },
  
  max_fails :允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误,
  
  null<h2 class=Nginx中怎么实现集群和负载均衡