使用Nginx实现高并发分布式系统架构

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx由C语言编写,对系统资源和CPU资源利用率都很高,支持50000并发连接数,并且安装和配置简便,启动速度极快,支持Linux、Mac OS X、Microsoft Windows等众多主流操作系统,是做分布式系统的常用的反向代理器。

Nginx的upstream可以实现负载均衡,upstream依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。尽管这样的方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。

upstrteam写在独立配置文件里,示例如下

上例的upstream详解如下

upstream backend { } :upstream的代码放进{},backend为upstream的名称

ip_hash; :每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。也可以通过单点登录方式解决session的问题。

server backend1.example.com weight=5;:backend1.example.com对应的后端服务器地址,可以是域名也可以是IP。weight为权重值,可以根据后端服务器的性能进行分配,权重值越大,接入访客的数量就越大。如果没有权重值设置,默认自动轮询访问。

server backup1.example.com:8080 backup;:backup为备用节点,当非备用节点都down掉或者都在忙碌状态,nginx才会发送请求给备用节点。

注意:如果使用ip_hash时,不能使用weight和backup。

LEAVE A REPLY

游客评论不支持回复他人评论内容,如需回复他人评论内容请