复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

nginx

【原创】Nginx教程-> nginx负载均衡配置

作者: whooyun发表于: 2017-04-12 18:50

今天给大家介绍nginx的负载均衡功能:

1、默认负载均衡

按发起请求的先后顺序分配到不同的服务器,如果有服务宕机后则自动剔除出集群,不给宕机的服务器发送请求

upstream daxiao123 { 
server 192.168.1.14; 
server 192.168.1.15; 
} 

2、权重负载均衡
发起请求,如果同时发起8个请求,则第一台服务器接受6个请求,第二台接受2个请求(这种场景比较适合服务器性能不一致的情况,各种新老机器搭配)
upstream daxiao123 { 
server 192.168.1.14 weight=6; 
server 192.168.1.15 weight=2; 
} 
加权轮询负载均衡的算法,我就不在这里介绍了,只要你在高配置机器上把数字配大点,低配置机器上配小点就可以了,然后再在生产上观察cpu和内存的使用情况做具体调整

3、ip_hash 负载均衡
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题(适用于每个访问用户都具有一个独立外网ip,不然session的问题还是无法解决)。 
建议:如果你真想解决session的问题,建议把session加入到统一的缓存服务器或者用个更恶心的办法存入数据库,还有就是使用淘宝开源的Tengine。
upstream daxiao123 { 
ip_hash; 
server 192.168.1.14:82; 
server 192.168.1.15:85; 
} 

最后在nginx.conf文件中将proxy_pass 后面的代理值改成http://daxiao123就可以了。千万记得修改前备好份,然后重启,访问,观察下负载均衡的结果。其实网络上还有其他方式,比如根据第三方fair服务响应时间来做负载均衡的,还有根据访问路径做负载均衡的,这些大家都可以去试用下。

顺便提一句,本网站使用的是第一种方式,因为没什么特殊需要,session用了redis缓存。如果过程中出现问题无法解决,欢迎大家进群讨论(624135994)