序
由于生产环境的需要,需要构建一个前端双向HA备份,后端nginx代理的负载均衡集群。nginx进程基于Master+Slave(worker)多进程模型,它有非常稳定的子进程管理功能。在主进程分配模式下,主进程从不处理业务,只分配任务,从而实现主进程的生存和高可靠性。从(工)进程的所有业务信号都由主进程发送,从(工)进程的所有超时任务都会被主进程挂起,属于非阻塞任务模型。Keepalived是Linux下VRRP备份路由的一个高度可靠的运行部件。基于Keepalived设计的服务模式,真正实现了主用服务器和备份服务器故障时的瞬间无缝IP切换。
这个架构需要考虑的问题
1)如果主服务器没有挂起,主服务器占用vip,nginx在主服务器上运行
2)如果主服务器挂起,备份抢占vip,在备份上运行nginx服务
3)如果主服务器上的nginx服务挂起,那么vip资源转移到备份服务器上
4)检查后端服务器的健康状态
主服务器和备份都启动nginx服务,并且当其中一个keepalived服务停止时,vip会漂移到keepalived服务shell所在的节点。
如果要挂nginx服务,vip也会漂移到另一个节点。[
下面的实验过程由难到易,简单易用,易于 *** 作。
一、前期环境准备二、后端apache安装配置
apache1:
1.装置
[root@Apache1~]#yuminstall-yhttpd
2.建立测试网页文件。
echo"这是apache1">/var/www/html/index.html
3.打开服务。
服务httpd启动
阿帕奇2:
1.装置
yum-y安装httpd
2.建立测试网页文件。
echo"这是apache2">/var/www/html/index.html
3.打开服务。
服务httpd启动
yum-y安装gccgcc+gcc-c++
yuminstallpopt-develOpenSSLOpenSSL-devellibssl-devlibnl-develpopt-devel
yuminstall-ynet-SNMP.x86_64net-SNMP-devel.x86_64
2.安装nginx
yuminstall-ynginx
3.修改nginx的配置文件
yuminstall-ynginx
创建自定义配置文件
mkdir/etc/nginx/conf.d/extra/
vim/etc/nginx/conf.d/extra/yang.conf
4.启动nginx
服务nginx启动
此时可以在浏览器中测试,输入IP:192.168.1.135。
恢复精神
这个nginx已经配置成功了,在另一台机器上也是这样配置的,这里就不赘述了。
以上配置文件中的内容虽然不多,但都是重要的部分,以后要用的功能也是逐步添加的。
2.修改保持激活的配置文件
vim/etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { yangry@shiwei.com } notification_email_fromyangry@shiwei.com smtp_server mail.shiwei.com smtp_connect_timeout 30 router_id LVS_MASTER1 # 表示运行keepalived服务器的一个标识,发邮件时显示在邮件主题中的信息 } vrrp_script chk_http_port { script "/usr/local/keepalived/nginx.sh"#### 检测nginx状态的脚本链接 interval 2 weight 2 } vrrp_instance VI_2 { #vrrp 实例 stateMASTER #MASTER/BACKUP interface eth1 ####HA 监测网络接口 virtual_router_id 51 # 虚拟路由标识,是一个数字,同一个VRRP实例使用唯一的标识,master和backup要一样 priority100 # 用于主从模式,优先级主高于100,从低于100 advert_int1 # 主备之间的通告间隔秒数 authentication{ # 认证用于主从模式,mater和backup配置一样 auth_type PASS ### 主备切换时的验证 auth_pass 1111 # 密码 } track_script { chk_http_port ### 执行监控的服务 } virtual_ipaddress { 192.168.1.100 dev eth1 label eth1:0 ########### 虚拟ip } }3.写nginx检测脚本。
vim/usr/local/keepalived/nginx.sh
if[`PS-Cnginx-no-header|WC-l`-eq0];然后
killallkeepalived
船方不负担装货费用
一定要给它可执行的权限。
chmod+x/usr/local/keepalived/nginx.sh
在另一台备份计算机上执行相同的 *** 作,注意/etc/keepalived/keepalived.conf需要修改如下:
状态备份
优先级99(确保小于master的值)
ifconfigeth1:0192.168.1.100网络掩码255.255.255.0以上
然后一查,就有两个IP了。
服务保持激活重启
你可以在备份上看到。
查看日志,可以看到两台服务器的MASTRE和BACUKUP都是正常的。
此时查看备份日志
显然,vip已经被成功接管。
自此,这个实验成功完成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)