Nginx负载均衡配置介绍:
想要让我们的应用具有高并发的能力,可以对数据库或web服务器进行负载均衡配置,其中在web服务器这一块加入负载均衡配置是非常常见的现象,本节将实用Nginx对我们的web进行负载均衡的实现。
什么是Nginx?
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯等。
优点:
1、可运行linux,并有windows 移植版
2、在高并发情况下,Nginx 可支持高达50000个并发连接数的响应。
一、负载均衡的作用介绍
1、转发功能
按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。
2、故障移除
通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕机掉,它会自动将请求通过Nginx转发到另外一台应用服务器。
3、恢复添加
如检测到发生故障的应用服务器恢复工作,它自动将其添加到处理用户请求队伍中。
二、Nginx实现负载均衡
同样使用两个tomcat模拟两台应用服务器,端口号分别为8080和8081,实用Nginx的upstream分配算法来在nginx.cnf中添加nginx负载均衡配置,代码如下:
upstream tomcatserver1 { server 192.168.1.117:8080 weight=2; server 192.168.1.118:8081; } server { listen 80; server_name www.tpyyes.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://tomcatserver1; index index.html index.htm; } }
通过以上配置之后,当访问www.tpyyes.com这个网站时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为 tomcatsever1的地址,读取分发策略。
配置tomcat1权重为2,所以nginx会将大部分请求发送给117的服务器上,也就是8080端口;较少部分请求会给118的tomcat2上,当然配置这个权重是看服务器性能优秀与否的。
三、upstream里面server后的参数介绍
1)down
表示单前的server暂时不参与负载
2)Weight
weight越大,负载的权重就越大(分配的请求越多),默认为1
3)max_fails
允许请求失败的次数默认为1,当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4)fail_timeout
max_fails 次失败后,暂停的时间。
5)Backup
其它所有的非backup机器down或者忙的时候,请求backup机器,所以这台机器压力会最轻。
备注:由于请求过大,nginx反向代理也有可能会挂掉,所以有时候就需要keepalive+nginx来实现nginx的高可用。