Nginx中怎样实现负载均衡

  介绍

这篇文章给大家介绍Nginx中怎样实现负载均衡,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<节> <节> <节> <节>

 Nginx中怎样实现负载均衡”> </p> <p>还是图比较清晰,以下我都用别名称呼:</p> <pre> PA :,负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5 </pre> <p> PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA, P1, P2, P3的防火墙关闭,尽量不要引起不必要的麻烦。</p> <p>首先:PA, P1, P2, P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install(中文版教程,非常的牛X) </p> <节> <节> <节> <节> <节> <p> <br/> </p> <p>装完之后哈,我们先找到PA的nginx.conf配置文件</p> </节> </节> </节> </节> </节> <p> <br/>在http段加入以下代码:<br/> </p> <pre> upstream  servers.mydomain.com  {,
  ,,,server  192.168.2.3:80;,
  ,,,server  192.168.2.4:80;,
  ,,,server  192.168.2.5:80;
  }</pre> <p>当然嘛,这servers.mydomain.com随便取的。</p> <p>那么PA的服务器配置如下:<br/>在http段加入以下代码:<em> <br/> </em> </p> <pre>服务器{,
  ,,,listen  80;,
  ,,,server_name  www.mydomain.com,,
  ,,,的位置/,{,
  ,,,,,,,proxy_pass  http://servers.mydomain.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> <p> <em>那么P1, P2, P3的配置如下:</em> </p> <pre>服务器{,
  ,,,listen  80;,
  ,,,server_name  www.mydomain.com,,
  ,,,index  index . html,,
  ,,,root /数据/根/www,,
  }</pre> <节> <节> <节> <节> <节>有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件</节> </节> </节> </节> </节> <pre> upstream  servers2.mydomain.com  {,
  ,,,server  192.168.2.3:8080;,
  ,,,server  192.168.2.4:8081;,
  ,,,server  192.168.2.5:8082;
  }
  
  服务器{,
  ,,,listen  80;,
  ,,,server_name  www.mydomain.com,,
  ,,,的位置/,{,
  ,,,,,,,proxy_pass  http://servers2.mydomain.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> <p>那么P1的配置如下:</p> <pre>服务器{,
  ,,,listen  8080;,
  ,,,server_name  www.mydomain.com,,
  ,,,index  index . html,,
  ,,,root /数据/根/www,,
  }</pre> <p> <em> P2配置:<br/> </em> </p> <pre>服务器{,
  ,,,listen  8081;,
  ,,,server_name  www.mydomain.com,,
  ,,,index  index . html,,
  ,,,root /数据/根/www,,
  }</pre> <p> <em> P3配置:<br/> </em> </p> <pre>服务器{,
  ,,,listen  8082;,
  ,,,server_name  www.mydomain.com,,
  ,,,index  index . html,,
  ,,,root /数据/根/www,,
  }</pre> <p> <em>重启之后,我们访问下,恩不错,确实很厉害。<br/>当我们把一台服务器给关闭了后。<br/>访问网址,还是OK的。说明:<强>负载均衡还要懂得修理他(T出泡妞队营)</强> </em> </p> <节> <节> <节> <节> <节>那么负载均衡如何保持通话呢? </节> </节> </节> </节> </节> <p>当然现在有好几种方案,我们这次只是讲一种。<br/> <em> IP哈希策略</em> <br/> <em>优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。</em> <br/> <em>缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。</em> </p> <p> nginx的配置也很简单,代码如下:</p> <pre> upstream  servers2.mydomain.com  {,
  ,,,server  192.168.2.3:8080;,
  ,,,server  192.168.2.4:8081;,
  ,,,server  192.168.2.5:8082;
  ,,,ip_hash;
  }</pre> <p class=关于Nginx中怎样实现负载均衡就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

Nginx中怎样实现负载均衡