Nginx的负载均衡


Nginx负载均衡_腾讯视频

PPT

一、.背景介绍

nginx 这个轻量级、高性能的 web server 主要可以干两件事情:

一是直接作为http server;另外一个功能就是作为反向代理服务器实现负载均

二、.知识剖析

nginx的负载均衡的几种策略:

1.轮询(默认);

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver {

server IP1;

server IP2;

}

2.指定权重:weight;

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver {

server IP1 weight=10;

server IP2 weight=10;

}

3.ip_hash;

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream backserver {

ip_hash;

server IP1:88;

server IP2:80;

}

4.fair(第三方);

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backserver {

server server1;

server server2;

fair;

}

5.url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

upstream backserver {

server squid1:3128;

server squid2:3128;

hash $request_uri;

hash_method crc32;

}

三、常见问题

1.为什么要用nginx负载均衡?

2.nginx的优缺点?

四、解决方案

1.为什么要用nginx负载均衡?

简单来说就是为了在服务器端宕机后,不会导致整个服务不能使用,负载均衡需要在两台以上的服务器上才能实现

2.nginx的优缺点?

优点:(1)Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能

(2)Nginx安装和配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来

(3)可以承担高负载压力且稳定,在硬件不差的情况下一般能支撑几万次的并发量

(4)Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。

缺点:(1)Nginx仅能支持http、https和Email协议,这样就在适用范围上面小些

(2)对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测

五、编码实战

六、扩展思考

Session问题:

当我们确定一系列负载的服务器后,那我们的WEB站点会分布到这些服务器上。

这个时候如果采用Test2 每一次请求随机访问任何一台服务器上,这样导致你访问A服务器后,

下一次请求又突然转到B服务器上。这个时候与A服务器建立的Session,传到B站点服务器肯定是无法正常响应的。

总结:通过nginx ip_hash负载保持对同一服务的会话,这中看起来最方便,最轻量。但是数据量增大会导致ip

七、参考文献

Nginx负载机均衡的配置

Nginx的优缺点

八、更多讨论

推荐阅读更多精彩内容