Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)
Nginx简介-服务器特性 一款高性能、轻量级web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
正向代理(Proxy)
代理服务器代理内部网络对Internet的连接请求
如果缓存服务器中已经有该网址
反向代理(Reverse Proxy)
代理服务器代理外部Internet主机对内部网络的连接请求
Nginx反向代理无缓存功能
负载均衡(LoadBalance)
将访问流量分配到多台服务器进行负载分担的服务
消除单点故障
提示服务性能
Nginx负载均衡算法
round-robin(轮询)
weighted(权重)
least-connected(最少连接数)
ip-hash(IP哈希)
双机热备keepalived功能模块
core
keepalived的核心 负责主进程的启动、维护以及全局配置文件的加载和解析
check
负责后端服务器池中主机的健康情况检查
vrrp
实现VRRP协议(Virtual Router Redundancy Protocol)
实现双机热备功能
备份方式
一主(master)多备(backup)
共用同一个虚拟IP地址(VIP) 但优先级不同
配置文件keepalived.conf
样例文件位于/etc/keepalived/samples/....
global_defs{ //全局配置
...
}
vrrp_instance VI_1{ //定义热备份实例
...
}
项目案例环境
项目案例拓扑
案例基本环境配置
1、克隆5台虚拟机(4台RHEL6.5 64位服务器、1台Windows 7客户机)
2、配置5台虚拟机的IP地址、主机名(参照案例环境完成)
3、关闭4台Linux服务器的iptables防火墙、selinux
4、开启4台Linux服务器的本地yum功能
5、测试5台主机间的连通性
克隆5台虚拟机(4台RHEL6.5 64位服务器、1台Windows 7客户机)
配置5台虚拟机的主机名
重启后生效
配置IP地址
关闭4台Linux服务器的iptables防火墙、selinux
开启4台Linux服务器的本地yum功能
测试5台主机间的连通性
win7客户端的IP配置
五台主机相互之间都能ping通
从物理机复制文件到虚拟机
虚拟机开启服务
物理机访问并上传文件
虚拟机获取到
其他虚拟机获取文件
Nginx服务器的配置(主、备服务器上分别完成)
安装Nginx所需的支持包
创建运行Nginx程序的系统用户账户www 并指定其登陆shell为/bin/false
解压nginx软件包
进入nginx的解压目录
配置nginx
# --prefix=... 指定nginx的安装路径
# --user=...,--group=... 指定运行nginx程序的用户账户和组账户
# --with-file-aio 启用文件修改支持功能
# --with-http_stub_status_module 启用状态统计功能
# --with-http_gzip_static_module 启用gzip静态压缩功能
# --with-http_flv_module 启用flv模块,提供寻求内存使用基于时间的偏移量文件
# --with-http_ssl_module 启用SSL模块
编译nginx 生成二进制安装文件
安装nginx
测试nginx的配置文件是否正确
启动nginx
停止nginx服务(杀死nginx工作进程)
kill $(cat /usr/local/nginx/logs/nginx.pid)
要重启nginx服务,按如下操作进行:
kill $(cat /usr/local/nginx/logs/nginx.pid)
/usr/local/nginx/sbin/nginx
查看服务进程
查看nginx程序的默认端口80
测试网页
部署节点服务器(在两台Tomcat服务器上分别完成)
卸载Linux系统自带的jdk
解压jdk软件包
移动解压后的jdk至/usr/local中 并重命名目录名为java
修改java的环境变量
重新加载环境变量
查看jdk版本
解压Tomcat软件包
移动解压后的tomcat到/usr/local 并重命名目录名为tomcat7
启动tomcat服务
查看tomcat的运行端口8080
测试默认页面
建立测试页
Tomcat1服务器WebSrv1上建立
Tomcat2服务器WebSrv2上建立
测试index.jsp页面
配置负载均衡功能(在主、备Nginx服务器上分别完成)
配置负载均衡功能
测试nginx配置文件是否正确
重启服务
查看nginx服务进程
查看nginx程序的默认端口
测试Nginx分负载均衡功能
win7客户机上分别访问192.168.113.1和192.168.113.2 能看到两个不同的java页面
部署keepalived(主、备Nginx服务器上分别完成)
安装keepalived的支持软件
安装群集管理工具ipvsadm
解压keepalived软件包
配置keepalived
# --prefix=... 指定安装路径
# --with-kernel-dir=... 指定Linux系统内核目录路径
编译keepalived
安装keepalived软件包
#/etc/init.d/keepalived
#chkconfig --add keepalived
#chkconfig keepalived on
建立配置文件keepalived.conf
主Nginx服务器
备份的Nginx服务器
将keepalived服务添加到开启自启动项中
设置当前系统中的keepalived服务为开启状态
启动keepalived服务
查看主Nginx服务器网卡的虚拟IP地址
测试双机热备功能
win7上不停ping 192.168.113.254(群集IP)
主机正常时
Nginx服务器可以看到群集地址
备份Nginx服务器看不到群集地址
主设备异常(故障)
在主Nginx服务器上执行
在备份Nginx服务器上可以看到群集地址
可以看到win7的ping请求超时了三个包后恢复正常
修复主设备
在主Nginx服务器上执行
在备份Nginx服务器上执行 备份设备交出控制权给主设备
win7的包丢了三个
win7测试网页 访问群集IP地址
两个窗口都访问192.168.113.254 能看到2个不同的java页面