浅谈Nginx七层反向代理和负载均衡-创新互联
1.介绍
创新互联拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕十年,专业且经验丰富。十年网站优化营销经验,我们已为上千家中小企业提供了成都做网站、成都网站制作解决方案,按需求定制网站,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!1.1 Nginx不仅是一个出色的web软件,其七层代理和负载均衡也是相当出色。Nginx做前端代理,当用户请求服务时,可以根据url进行判断,然后分配到不同的后台webserver上。
1.2 Nginx的负载均衡实现原理:首先在http模块中配置使用upstream模块定义后台的web server的池子,名为proxy-web,在池子中我们可以添加多台后台webserver,其中状态检查、调度算法都是在池子中配置;然后在serverr模块中定义虚拟主机,但是这个虚拟主机不指定自己的web目录站点,它将使用location匹配url然后转发到上面定义好的web池子中,最后根据调度策略再转发到后台web server上
2.负载均衡配置项的介绍
2.1 upstream调度算法介绍
(1)rr轮询(默认)
按照请求顺序分配到每个RS,和lvs中的rr算法一样,如果RS宕机,会自动剔除,默认情况下只检测80端口,如果RS报402、403、503、504错误,会直接返回给客户端。
(2)weight(权重)
在rr的基础上再加上权重(默认是rr+weight),权重轮询和访问成正比,值越大分配的越多,可以根据服务器的配置设置权重,可以解决服务器性能不均进行请求分配的问题
(3)ip_hash
解决动态网页session共享问题
每个访问请求按照IP地址的hash值进行分配,ip的hash值只要相同就会被分配到同一台服务器上(lvs负载均衡的-p参数,keepalived配置里的persistence_timeout 50),该调度算法可以解决动态网页session共享问题,但有时会导致请求分配不均,
提示:由于国内用的都是nat模式,所以hash不适合使用
ip_hash不能和其他的算法一块使用,即不能使weight或backup
(4)fair(第三方)
按照后端服务器的响应时间来配置,响应时间短的优先分配,比上面的都更智能,此种算法可以按照页面大小和加载时间长短智能的进行负载均衡,nginx本身不支持fair,需要下载nginx的upstrea_fair模块
(5)url_hash(第三方)
主要应用于缓存服务器上
按照访问的url来分配请求,让相同的url定向到同一个服务器,后端服务器为缓存服务器的时候效果更显著,在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。
缺点:如果有一台机器宕机了,那就苦了,consistent_hash可以解决这个问题
可以提高后端缓存服务器的效率,nginx本身不支持url_hash的,需要下载hash软件
(6)least_conn
最少连接数,哪个连接少就分配到哪台设备
(7)consistent_hash
一致性算法
2.2 upstream健康检查配置介绍
upstream proxy_nginx { server 192.168.0.254 weight=1 max_fails=2 fail_timeout=10s ; server 192.168.0.253 weight=2 max_fails=2 fail_timeout=10s; server 192.168.0.252 backup; server 192.168.0.251 down; }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:浅谈Nginx七层反向代理和负载均衡-创新互联
网页URL:http://cdiso.cn/article/igsoj.html