keepalived企业管理
实践案例一:更改nginx反向代理只监听vip地址
10.0.0.3/nana.html 可以使用
10.0.0.5/nana.html 不可以使用
10.0.0.6/nana.html 不可以使用
第一个里程碑:修改反向代理服务配置文件,只监听vip地址
####lb01 lb02 nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
upstream server_pools {
server 10.0.0.7;
server 10.0.0.8;
server 10.0.0.9;
}
server {
listen 10.0.0.3:80;
server_name www.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_www.log main;
}
server {
listen 10.0.0.3:80;
server_name blog.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_blog.log main;
}
}
说明:在修改反向代理服务器配置文件监听地址时,多个server都需要配置监听地址,否则仍旧使用默认监听所有
第二个里程碑:lb02上不存在vip地址,无法监听,需要修改内核文件
[root@lb01 conf]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: [emerg] bind() to 10.0.0.3:80 failed (99: )
nginx: configuration file /application/nginx-1.10.2/conf/nginx.conf test failed
[root@lb01 conf]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:27:4e:e9 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global eth0
inet6 fe80::20c:29ff:fe27:4ee9/64 scope link
valid_lft forever preferred_lft forever
[root@lb01 conf]# ###nginx 没有办法 监听 本地不存在的ip地址
解决方法:
echo 'net.ipv4.ip_nonlocal_bind = 1' >>/etc/sysctl.conf ---实现监听本地不存在的ip地址
##/etc/sysctl.conf 加上
sysctl -p
第三个里程碑:进行测试
1.1 企业实践案例二:让keepalived监控nginx反向代理服务
###vip什么时候 什么条件 才会飘走 ?
1.当服务器宕机
2.防火墙
#### nginx挂了
如何让keepalived监控nginx nginx挂了,keepalived跟着殉情
####第一个里程碑-keepalived监控nginx条件
1.如何nginx挂了---我如何知道nginx挂了?
1)端口
2)进程
ps -ef |grep nginx |grep -v grep |wc -l
2.keepalived挂了
/etc/init.d/keepalived stop
##> -gt greater than
##>= -ge greater equal
##< -lt less than
##<= -le less equal
##== -eq equal
##!= -ne no equal
####第二个里程碑-根据条件-书写脚本
#!/bin/bash
if [ `ps -ef |grep nginx |grep -v grep |wc -l` -lt 2 ];
then
/etc/init.d/keepalived stop
fi
####第三个里程碑-添加权限 chmod +x /server/scripts/check_web.sh
注意 脚本名称不要和服务一样
####第四个里程碑-测试
####第五个里程碑-放入到keepalived.conf
####下面是lb02的配置文件 lb01上面自己修改下。
global_defs {
router_id LVS_02
}
vrrp_script check_web {
script "/server/scripts/ check_web.sh " --- 表示将一个脚本信息赋值给变量check_web
interval 2 --- 执行监控脚本的间隔时间
weight 2 --- 利用权重值和优先级进行运算,从而降低主服务优先级
使之变为备服务器(建议先忽略)
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
track_script {
check_web
}
}
####第六个里程碑-测试
1.2 企业实践案例三:keepalived多实例配置 双主
####第一个里程碑-配置keepalived-配置双主
####lb01
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script check_web {
script "/server/scripts/check_web.sh"
interval 2
weight -10
}
vrrp_instance group_1 {
state MASTER
interface eth0
virtual_router_id 45
priority 150
advert_int 2
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
10.0.0.3
}
}
vrrp_instance group_2 {
state BACKUP
interface eth0
virtual_router_id 46
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
10.0.0.4
}
}
#lb02
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance group_1 {
state BACKUP
interface eth0
virtual_router_id 45
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
10.0.0.3
}
}
vrrp_instance group_2 {
state MASTER
interface eth0
virtual_router_id 46
priority 150
advert_int 2
authentication {
auth_type PASS
auth_pass 6666
}
virtual_ipaddress {
10.0.0.4
}
}
#########第二个里程碑-配置nginx 负载均衡
####lb01 lb02 nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
upstream server_pools {
server 10.0.0.7;
server 10.0.0.8;
server 10.0.0.9;
}
server {
listen 10.0.0.3:80;
server_name www.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_www.log main;
}
server {
listen 10.0.0.4:80;
server_name blog.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_blog.log main;
}
}
#########第三个里程碑-windows hosts解析
10.0.0.3 www.etiantian.org
10.0.0.4 bbs.etiantian.org
keepalived企业管理的更多相关文章
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- keepalived从机接管后主机恢复不抢占VIP
在lvs+keepalived环境中,为了减小keepalived主从切换带来的意外风险,,设置主机恢复后不抢占VIP.待进行vrrp协议通告备机不可用时切换.主要修改两个地方.(红色部分) 只需修改 ...
- keepalived 知识备注
keepalived可用于配置nginx/lvs等负载均衡设备的双机热备. keepalived基于VRRP协议,简单的说就是两个物理路由节点(一主一备),虚拟成一个逻辑上的路由节点. 实际消息的路由 ...
- Windows下PowerShell监控Keepalived
一.背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell来完成发邮件预警. 二 ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- 基于keepalived双主模型的高可用LVS
背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...
- Keepalived使用梳理
keepalived介绍keepalived观察其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,它集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防 ...
- Keepalived的全局配置
Keepalived的全局配置 默认配置文件如下: ! Configuration File for keepalived global_defs { notification_email { aca ...
随机推荐
- 基本的数据类型 void关键字 都存在类类型
- JAVA基础知识总结14(String、StringBuffer、StringBuilder)
1.String字符串: java中用String类进行描述.对字符串进行了对象的封装.这样的好处是可以对字符串这种常见数据进行方便的操作.对象封装后,可以定义N多属性和行为. 如何定义字符串对象呢? ...
- 关于handler和异步任务
handler使用流程概要 首先在主线程新建一个handler实例,重写onhandlemessage(Message msg) 方法,对传过来的message进行处理 然后在子线程中完成操作,操作完 ...
- FileZilla Server下通过别名设置虚拟目录
说明:FileZilla Server 的虚拟目录设置与其它 FTP 服务器软件有所不同.在 FileZilla Server 中设置虚拟目录,必须采用 FTP 根目录 + 虚拟目录名的形式来进行.比 ...
- 原来windows里记事本的ansi编码就是GB2312啊,跟utf-8,unicode是不一样的。
原来windows里记事本的ansi编码就是GB2312啊,跟utf-8,unicode是不一样的. 程序里的比如java的,Qt的string都是unicode的字符串,因此如果是你从文件中读取文字 ...
- day17 9.关闭资源与异常处理
Java程序跟任何外部设备进行连接之后,都要把连接断开,把资源释放掉.Connection是一个重量级资源,Connecton占内存,Connection的获取是比较消耗资源和内存的.finally是 ...
- CURD 操作 [1]
create创建新数据 首先在主目录下创建index.html,与index.php同级,插入以下代码 <meta charset="utf-8"> <form ...
- GCC 版本与C11标准
1. GCC版本是否支持C11 C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:; 带了GNU扩展的:-std=gnu90 C94=C95:gcc选项:- ...
- 关于PDF的一些书籍
PDF Explained: The ISO Standard for Document Exchange https://ssearch.oreilly.com/?q=PDF+
- html 5 data-* (dataset) 属性和 jquery data方法比较
一些文章在介绍html 5 data-* (dataset)属性时,会提到jquery的data方法,认为data方法能够很好的利用html 5的这个特性.但实际上,二者的兼容性是很差的.下面给出一段 ...