Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Nginx简介-服务器特性  一款高性能、轻量级web服务软件

稳定性高

系统资源消耗低

对HTTP并发连接的处理能力高

 

正向代理(Proxy)

代理服务器代理内部网络对Internet的连接请求

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

如果缓存服务器中已经有该网址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

反向代理(Reverse Proxy)

代理服务器代理外部Internet主机对内部网络的连接请求

Nginx反向代理无缓存功能

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

负载均衡(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{        //定义热备份实例

     ...

}

 

项目案例环境

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

项目案例拓扑

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、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客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

配置5台虚拟机的主机名

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

重启后生效

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

配置IP地址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

关闭4台Linux服务器的iptables防火墙、selinux

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

开启4台Linux服务器的本地yum功能

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试5台主机间的连通性

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

win7客户端的IP配置

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

五台主机相互之间都能ping通

 

从物理机复制文件到虚拟机

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

虚拟机开启服务

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

物理机访问并上传文件

 

虚拟机获取到

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

其他虚拟机获取文件

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

Nginx服务器的配置(主、备服务器上分别完成)

安装Nginx所需的支持包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

创建运行Nginx程序的系统用户账户www 并指定其登陆shell为/bin/false

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

解压nginx软件包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

进入nginx的解压目录

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

配置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模块

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

编译nginx 生成二进制安装文件

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

安装nginx

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试nginx的配置文件是否正确

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

启动nginx

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

停止nginx服务(杀死nginx工作进程)

kill $(cat /usr/local/nginx/logs/nginx.pid)

 

要重启nginx服务,按如下操作进行:

kill $(cat /usr/local/nginx/logs/nginx.pid)

/usr/local/nginx/sbin/nginx

 

查看服务进程

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

查看nginx程序的默认端口80

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试网页

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

部署节点服务器(在两台Tomcat服务器上分别完成)

卸载Linux系统自带的jdk

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

解压jdk软件包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

移动解压后的jdk至/usr/local中 并重命名目录名为java

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

修改java的环境变量

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

重新加载环境变量

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

查看jdk版本

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

解压Tomcat软件包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

移动解压后的tomcat到/usr/local 并重命名目录名为tomcat7

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

启动tomcat服务

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

查看tomcat的运行端口8080

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试默认页面

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

建立测试页

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Tomcat1服务器WebSrv1上建立

 

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Tomcat2服务器WebSrv2上建立

 

测试index.jsp页面

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

配置负载均衡功能(在主、备Nginx服务器上分别完成)

配置负载均衡功能

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试nginx配置文件是否正确

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

重启服务

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

查看nginx服务进程

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

查看nginx程序的默认端口

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试Nginx分负载均衡功能

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

win7客户机上分别访问192.168.113.1和192.168.113.2  能看到两个不同的java页面

 

部署keepalived(主、备Nginx服务器上分别完成)

安装keepalived的支持软件

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

安装群集管理工具ipvsadm

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

解压keepalived软件包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

配置keepalived

# --prefix=... 指定安装路径

# --with-kernel-dir=... 指定Linux系统内核目录路径

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

编译keepalived

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

安装keepalived软件包

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

#/etc/init.d/keepalived

#chkconfig --add keepalived

#chkconfig keepalived on

 

建立配置文件keepalived.conf

主Nginx服务器

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

备份的Nginx服务器

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

将keepalived服务添加到开启自启动项中

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

设置当前系统中的keepalived服务为开启状态

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

启动keepalived服务

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

查看主Nginx服务器网卡的虚拟IP地址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

测试双机热备功能

win7上不停ping 192.168.113.254(群集IP)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

主机正常时

Nginx服务器可以看到群集地址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

备份Nginx服务器看不到群集地址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

主设备异常(故障)

在主Nginx服务器上执行

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

在备份Nginx服务器上可以看到群集地址

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

可以看到win7的ping请求超时了三个包后恢复正常

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

修复主设备

在主Nginx服务器上执行

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

在备份Nginx服务器上执行 备份设备交出控制权给主设备

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

win7的包丢了三个

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

 

win7测试网页 访问群集IP地址

两个窗口都访问192.168.113.254 能看到2个不同的java页面

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)

Linux Nginx双机热备及负载均衡群集配置(1主Nginx服务器、1备Nginx服务器、2tomcat服务器、1客户机)