Keepalived+Nginx实现高可用(HA)
来源:互联网 发布:仿麦客网表单源码 编辑:程序博客网 时间:2024/06/06 05:27
环境介绍
1.服务器(192.168.20.112):安装keepalived和nginx 主节点
2.服务器(192.168.20.113):安装keepalived和nginx 从节点
3.服务器(192.168.20.114):安装tomcat
4.服务器(192.168.20.115):安装tomcat
5.两台Nginx端口:80
6.两台tomcat端口:8080
7.VIP:192.168.20.116
配置文件
1.Nginx配置文件(两个节点Nginx配置文件一致,Nginx端口可以与tomcat不一致):
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; #gzip on;upstream serverpool { server 192.168.20.114:8080; server 192.168.20.115:8080; } server { listen 80; server_name localhost; location / { proxy_pass http://serverpool; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
2.主节点keeaplived配置文件
! Configuration File for keepalivedglobal_defs {notification_email { 986692803@qq.com 1171899551@qq.com } notification_email_from mumubuku2014@163.com smtp_server smtp.163.com smtp_connect_timeout 30 router_id nginx_master}#检测nginx端口是否故障的脚本vrrp_script chk_http_port { script "</dev/tcp/127.0.0.1/80" interval 1 weight -2 } #为了避免启动keepalived之前没有启动nginx , 在start中首先启动nginxstart() { /usr/local/nginx/sbin/nginx sleep 3 echo -n $"Starting $prog: " daemon keepalived ${KEEPALIVED_OPTIONS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog} vrrp_instance VI_1 { state MASTER interface eth1#注意网卡要与本机网卡名称一致 virtual_router_id 51 priority 100#优先权权重,值大的会被先启用 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.20.116#自己设置的VIP }track_script { chk_http_port #启用脚本检测 } }
3.从节点keeaplived配置文件
! Configuration File for keepalivedglobal_defs {notification_email { 986692803@qq.com 1171899551@qq.com } notification_email_from mumubuku2014@163.com smtp_server smtp.163.com smtp_connect_timeout 30 router_id nginx_backup}#检测nginx端口是否故障的脚本vrrp_script chk_http_port { script "</dev/tcp/127.0.0.1/80" interval 1 weight -2 } #为了避免启动keepalived之前没有启动nginx , 在start中首先启动nginxstart() { /usr/local/nginx/sbin/nginx sleep 3 echo -n $"Starting $prog: " daemon keepalived ${KEEPALIVED_OPTIONS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog}vrrp_instance VI_1 { state BACKUP interface eth0#注意网卡要与本机网卡名称一致 virtual_router_id 51 priority 99#优先权权重,值大的会被先启用 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.20.116#自己设置的VIP }track_script { chk_http_port #启用脚本检测 } }
4.实现步骤
4.1.步骤一:在192.168.20.114和192.168.20.115上安装tomcat
4.2步骤二:在192.168.20.112和192.168.20.112上安装nginx
4.3步骤三:分别在192.168.20.112和192.168.20.112上做nginx反向代理配置和负载均衡配置代理到两台tomcat服务器
4.4步骤四:在192.168.20.112和192.168.20.112上安装keepalived
4.5步骤五:修改192.168.20.112和192.168.20.112两台服务器的keepalived配置文件
4.6步骤六:启动192.168.20.112和192.168.20.112两个节点的keepalived服务
5.高可用原理
当主节点出故障,keepalived会根据priority的值大小竞争来决定谁是真正的MASTER,脚本检测也是在失败的时候会把权重减去相应的值,比如原来master的priority=100,如果脚本检测到端口80无法连接,就会priority-2=98,权重98小于从节点的priority(99),此时从节点将竞争成为master,这样就实现了web应用的热备。
注:此处是做两个节点,如果是两个以上节点,那么节点权重最大的将成为主节点。
6.安装说明
整个安装过程很简单,安装keepalived只需执行:
yum install -y keepalived (centos redhat)
或者
apt-get install keepalived (debian ubuntu)
Nginx和Tomcat在此就不再赘述,可以参考我的其他文档。
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Nginx + keepalived 实现高可用HA 【主从架构】
- Nginx + keepalived 实现高可用HA 【双主架构】
- keepalived +nginx 实现HA 高可用的负载均衡
- nginx+keepalived实现高可用
- Keepalived+Nginx实现高可用
- nginx+keepalived实现高可用
- keepalived+nginx实现nginx的高可用
- Nginx高可用使用Keepalived+nginx实现
- nginx和keepalived实现nginx高可用
- nginx+keepalived实现HA
- nginx+keepalived实现高可用负载均衡
- Nginx+Keepalived实现站点高可用
- Nginx+Keepalived实现站点高可用
- [Utils工具整理] Toast 显示帮助类
- 【HD 1878】欧拉回路
- C#控制台 截取string字符串中的一段用Substring
- [Java笔记] 反射
- HDU 1536 S-Nim(SG经典博弈)
- Keepalived+Nginx实现高可用(HA)
- php正则表达式
- 函数传参
- HTML5的FileReader用法
- poj 1611 The Suspects 【并查集】
- 进程之写时拷贝技术
- APP开发实战127-APP性能优化工具
- SDUT 2127 树-堆结构练习——合并果子之哈夫曼树
- mysql基本sql语句大全(基础用语篇)