(11) nginx + keepalived 双机热备
转载地址: http://www.cnblogs.com/kaituorensheng/p/4889268.html
阅读目录
- 序
- nginx
- keepalived
- 测试
- 问题:杀死keepalived进程后,可以实现vip的偏移,但是原机器的vip无法自动删除
序
双机热备是指两台机器都在运行,但并非两台机器同时在提供服务。
当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短。
keepalived的工作原理是VRRP——虚拟路由冗余协议。
测试环境如下:
ip |
vip |
|
master |
192.168.174.135 |
192.168.174.140 |
backup |
192.168.174.137 |
192.168.174.140 |
nginx
安装
sudo apt-get install nginx
查找配置文件位置
sudo find / -name nginx.conf /etc/nginx/nginx.conf
修改配置文件(nginx.conf)
user www-data; worker_processes 4; pid /run/nginx.pid;events {worker_connections 1024; }http {sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;include /etc/nginx/mime.types;default_type application/octet-stream;access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;server {listen 80 default_server;server_name test;charset utf-8;location / {root html;index index.html index.htm;proxy_set_header X-Real_IP $remote_addr;client_max_body_size 100m;}} }
文件/usr/share/nginx/html/index.html
在192.168.174.135上加上 <h1>Welcome to nginx! 135 </h1>
在192.168.174.137上加上 <h1>Welcome to nginx! ***137*** </h1>
启动
sudo service nginx start
关闭
sudo service nginx stop
keepalived
安装
下载keepalived-1.2.19.tar.gz
tar –zxvf keepalived-1.2.19.tar.gz cd keepalived-1.2.19 ./configure --prefix=/usr/local/keepalived make sudo make install
期间可能出现问题:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
解决
sudo apt-get install libssl.dev
建立软链接
sudo ln -s /usr/local/keepalived/sbin/keepalived /sbin/ sudo ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ sudo ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
启动
sudo keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf
关闭
sudo killall keepalived
配置(keepalived.conf):
global_defs {router_id NODEA }vrrp_instance VI_1 {state MASTER interface eth0 #监测网络接口 virtual_router_id 50 #主、备必须一样 priority 100 #优先级:主>备advert_int 1authentication {auth_type PASS #VRRP认证,主备一致auth_pass 1111 #密码 }virtual_ipaddress {192.168.174.140/24 #VRRP HA虚拟地址} }
备用节点的配置
global_defs {router_id NODEB }vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 50priority 90 advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.174.140/24} }
测试
双击热备
两台机子均启动nginx和keepalived,浏览器各自访问
浏览器访问:http://192.168.174.140/,显示的是MASTER的页面。
同样用ip appr可以验证:
135机器:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:39:d4:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.135/24 brd 192.168.174.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.174.140/24 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe39:d488/64 scope link
valid_lft forever preferred_lft forever
137机器:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:0c:29:cf:23:62 brd ff:ff:ff:ff:ff:ff
inet 192.168.174.137/24 brd 192.168.174.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fecf:2362/64 scope link
valid_lft forever preferred_lft forever
现在关闭135机器的keepalived。
但当nginx宕掉或整个机子宕机后,这种情况不行了——通过浏览器访问192.168.174.140访问不到资源。
nginx宕掉/机器宕掉热备
为了解决上一问题,可以利用脚本,当检测到nginx进程宕掉后,自动关闭keepalived进程,从而实现热备份。
主节点的配置
global_defs {router_id NODEA }vrrp_script chk_http_port {script "/home/jimite/keepalived/chk_nginx_pid.sh"interval 2weight 2 }vrrp_instance VI_1 {state MASTER interface eth0virtual_router_id 50priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {192.168.174.140/24} }
备用节点的配置
global_defs {router_id NODEB }vrrp_script chk_http_port {script "/home/jihite/keepalived/chk_nginx_pid.sh"interval 2weight 2 }vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 50priority 90 advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {192.168.174.140/24} }
其中/home/jimite/keepalived/chk_nginx_pid.sh为
#!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ] thenecho 'nginx server is died'sudo killall keepalived fi
问题:杀死keepalived进程后,可以实现vip的偏移,但是原机器的vip无法自动删除
(11) nginx + keepalived 双机热备相关推荐
- 图文教程,Nginx+Keepalived(双机热备)介绍已经搭建高可用负载均衡环境
上一次分享了Nginx相关的应用场景如下: Nginx介绍以及一些应用场景说明 在实际使用,单机版的Nginx就不能满足高可用的要求了,在这种情况下,我们使用Nginx+Keepalived(双机热 ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- nginx+keepalived双机热备
简介 keepalived是一个类似于layer3, 4 & 5交换机制的软件,即可以使IP层.传输层.和应用层的服务冗余集群化.常应用于iP的虚拟化,能够实现mysql.nginx等服务的双 ...
- Nginx+keepalived双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:linux负 ...
- Nginx+keepalived 双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 关于负载均衡介绍,可以参考:linux负 ...
- Nginx之——Nginx+keepalived双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行. 由于业务扩展,网站的访问量不断加大,负载 ...
- Nginx+Keeplived双机热备(主从模式)
Nginx+Keeplived双机热备(主从模式) 参考资料: http://www.cnblogs.com/kevingrace/p/6138185.html 双机高可用一般是通过虚拟IP(漂移IP ...
- Keepalived双机热备
Keepalived双机热备 Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健检查功能,如判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当 ...
- Linux7双机,Centos 7 keepalived双机热备
Centos 7 keepalived双机热备 操作环境: keepalived热备份(双机热备) Centos 7系统ip地址: 192.168.80.100 --主服务器 Centos 7系统ip ...
最新文章
- BZOJ 4595 SHOI2015 激光发生器 射线,线段,偏转
- 在Itanium2、Intel Fortran Compiler上安装VASP4.6
- poj2987最大权闭包(输出最少建塔个数)
- mysql 1366 hy000_ERROR 1366 (HY000): Incorrect string value错误解决办法
- Shell(1)——执行脚本
- js 获取data-属性值
- 如何保证文章中同一组样品在不同子图颜色一致?
- 集成springboot案例_SpringBoot开发者都在用的五款优质扩展,每个都很能打!
- pom.xml中添加oracle数据库驱动包报错: Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
- 【软考软件评测师】2011年下案例分析历年真题
- WPF 入门教程 TextBox详解
- 奇虎360面经:测试
- Flink 1.13(八)CDC
- 刘宇凡:我眼中的SEO思维
- 基于深度神经网络实现的kws系统
- web语意化的深入理解
- 【Py】基于Python的身份证读卡器二开全记录
- 内存映射I/O与端口映射I/O的区别
- GO富集分析相关概念
- h5公众号调取微信扫一扫功能,处处都是坑~
热门文章
- 【Java多线程】生产者消费者问题
- 怎么new一个指针_【译】Rust与智能指针
- django language_Python+Django— 入门通关(三)| admin:后台管理界面
- zoj 3707 Calculate Prime S
- 【简便解法】1068 万绿丛中一点红 (20分)
- [leetcode]94.二叉树的中序遍历
- 数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言
- 图片怎么压缩图片大小_图片的体积怎么压缩?这三种方法你会吗?
- docker容器的本地局域网yum源优化
- mysql安装时损坏的图像_在PHP中从MySQL获取图像会导致图像损坏