Nginx负载均衡的详细配置及使用案例详解.


感谢看过这一些列博文和评论的小伙伴, 我把本身所看到的学到的拿到这里来分享是想和你们一块儿学习进步, 想听听园友给出的意见, 也是对本身学习过程的一个总结. 
技术无止境, 咱们仍需努力!


1,话很少说, 这里咱们来讲下很重要的负载均衡, 那么什么是负载均衡呢? 
linux

因为目前现有网络的各个核心部分随着业务量的提升,访问量和数据流量的快速增加,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本没法承担。在此状况下,若是扔掉现有设备去作大量的硬件升级,这样将形成现有资源的浪费,并且若是再面临下一次业务量的提高时,这又将致使再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能知足当前业务量增加的需求。 
针对此状况而衍生出来的一种廉价有效透明的方法以扩展示有网络设备和服务器的带宽、增长吞吐量、增强网络数据处理能力、提升网络的灵活性和可用性的技术就是负载均衡(Load Balance)。nginx


2, 负载均衡的种类
apache

1)一种是经过硬件来进行解决,常见的硬件有NetScaler、F五、Radware和Array等商用的负载均衡器,可是它们是比较昂贵的
2)一种是经过软件来进行解决的,常见的软件有LVS、Nginx、apache等,它们是基于Linux系统而且开源的负载均衡策略.

3, 这里咱们只来讲Nginx(其余的你们有兴趣能够自行查阅相关文档)
服务器

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·西索夫)所开发,供俄国大型的入口网站及搜索引擎Rambler(漫步者)(俄文:Рамблер)使用。其特色是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。
优势:
1:可运行linux,并有 Windows 移植版。
2:在高链接并发的状况下,Nginx是Apache服务器不错的替代品Nginx在美国是作虚拟主机生意的老板们常常选择的软件平台之一。可以支持高达 50,000 个并发链接数的响应

4, 建立两台Nginx服务器
因为本身在本身电脑上搭建, 因此 如今只模拟搭建两台Nginx服务器. 


网络

负载均衡的功能:
转发
故障移除
恢复添加
高可用 Ha

咱们想要使用Nginx那么就必须知足上面的四个条件.
咱们配置负载均衡的目的是在于当用户访问咱们的服务器的时候, 首先会经过 Nginx服务器来决定转发到哪一个Tomcat服务器上去给用户提供服务, 固然这个几率是咱们经过权重来配置的. 通过Nginx指派以后, 咱们就能够处理高并发的访问了, 这里就能达到负载均衡的目的.


5, 搭建Nginx
首先咱们须要你们两台机器, 两台机器分别安装了Nginx和Tomcat, IP分别为: 192.168.200.129. 192.168.200.130


并发


接着咱们须要将Nginx和Tomcat包分别拷贝到CentOS01和CentOS02上, 而且解压好, 这里就再也不复述这个过程了.
而后咱们须要关闭Linux的防火墙, 不然的话启动了Nginx也是链接不上的.



咱们仍是来再看下解压吧:
负载均衡

解压完以后咱们须要编译安装:jsp

 1 ./configure \  2 --prefix=/usr/local/nginx \  3 --pid-path=/var/run/nginx/nginx.pid \  4 --lock-path=/var/lock/nginx.lock \  5 --error-log-path=/var/log/nginx/error.log \  6 --http-log-path=/var/log/nginx/access.log \  7 --with-http_gzip_static_module \  8 --http-client-body-temp-path=/var/temp/nginx/client \  9 --http-proxy-temp-path=/var/temp/nginx/proxy \ 10 --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ 11 --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ 12 --http-scgi-temp-path=/var/temp/nginx/scgi

注意:上边将临时文件目录指定为/var/temp/nginx,须要在/var下建立temp及nginx目录
mkdir -p /var/temp/nginx
高并发

生成了文件夹后咱们直接拷贝上面的编译安装命令进行安装.

性能

执行完上诉步骤后, 咱们能够看到nginx目录下生成了Makefile文件,咱们接着往下: 


而后使用Make命令, 运行结束后在使用Make install命令进行安装, 最后是启动Nginx:

查看是否启动成功:



配置反向服务代理器:
什么是反向服务呢? 首先说下正向服务, 例如爬虫程序, 咱们主动出击去获取资源. 而反向服务咱们是等待用户来访问. 区别在于主动和被动.
配置文件Nginx/conf/nginx.conf


配置Nginx转发条件


重启Nginx服务器



为了测试, 咱们在两个Tomcat 服务器的index.jsp中分别加了这是来自于哪一个ip下的Tomcat. 以下图所示:




重启好Nginx后, 咱们再来访问192.168.200.129 这台机器, 我么能够发现其实访问的是129.168.200.130这台机器.



负债均衡的配置, 配置转发的权重: (另外一台CentOS02 依然按照CentOS01的配置)


咱们在这里配置了两台转发机器: 192.168.200.129和192.168.200.130, 它们的权重分别是2/3 和1/3, 也就是说访问三次192.168.200.129, 有两次是192.168.200.129上的Tomcat来处理, 有一次是192.168.200.130上的Tomcat来处理. 若是咱们的Tomcat服务器更多 那么就须要在这里配置更多, 权重根据实际需求来划分.

同上, 搭建另外一台机器192.168.200.130的负载均衡:



搭建Keepalived:(Keepalived须要依赖openssl)
这里若是咱们的机器192.168.200.129 出现故障了呢? 那么怎么使用192.168.200.130上的Nginx进行转发呢? 怎么设置主机和备机呢? 若是主机死了怎么进行故障移除呢? 若是主机从不可用到可用状态又怎么进行恢复添加呢? 这些功能都是能够经过Keepalived来进行设置的.


Keepalived原理:

首先Keepalived能够在主机上产生一个虚拟的ip, 这里叫作vip(v是virtual的意思):192.168.200.150, keepalived会将这个vip绑定到交换机上.
当用户访问主机:192.168.200.129时, 交换机会经过这个ip和vip的对应找到192.168.200.129上的Nginx进行处理.
若是当有一天192.168.200.129上的Nginx挂掉的时候, Keepalived会当即在备机上生成一个相同的vip: 192.168.200.150, 当用户继续访问192.168.200.129时, 交换机上已经绑定了vip, 这时发现这个vip是存在于192.168.200.130上面的, 因此直接将请求转发到了备机上. 
若是主机被修复好可以继续对外提供服务时, 这时keepalived会将主机上继续生成这个vip, 同时回收在备机上生成的vip. 这个是经过心跳检查来判断主机已恢复使用.


我这里已经提早安装好了oppenssl, 关于具体安装方法你们能够自行百度.
检查openssl 是否安装成功: 


Keepalived的安装命令:


查看Keepalived的安装目录:


编辑Keepalived的配置文件:

首先咱们来清空配置文件(清空后会自动再生成一个keepalived.conf, 可是里面的内容为空)
关于为何要清空, 由于咱们已经配置好了一些相关内容, 直接使用便可.

 

这里是来设置虚拟IPeth1:
由于个人CentOS是拷贝过来的, 因此这里是eth1, 关于怎么查看, 咱们在文章开头有查看本机ip: ifconfig, 那里面有显示咱们的网卡就是eth1.




配置完成以后, 启动keepalived:


检测Keepalived是否启动成功:

这里查看 咱们的机器多了两个ip, 其实这两个ip都是虚拟ip

设置备机:|
这里的权重只要低于主机的100就好.


启动备机的Keepalived:



当主机中止服务时, 备机便可接管继续服务:
关于Nginx的内容大概就是这么多了, 我这里是一步步配置且经过验证的, 若是你们哪里有疑问均可以回复留言.

相关文章
相关标签/搜索