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 ...
随机推荐
- SSH框架搭建步骤
1.创建一个工程2.工程的编码改成utf-83.把jsp的编码也改成utf-84.导入jar包5.建立三个src folder src 存放源代码 config ...
- HTML布局,插件的调用方法
- MMSeg中文分词算法
Java中有一些开源的分词项目,比如:IK.Paoding.MMSEG4J等等.这里主要说的是MMSEG4J中使用的MMSeg算法.它的原文介绍在:http://technology.chtsai.o ...
- day69-oracle 22-DBCA
只涉及到数据库的管理,不涉及到数据库的开发.不涉及到写SQL程序或者是写增删改查,不涉及到这些东西,也不涉及到事务. 你在安装oracle的时候它自动帮你创建一个数据库.
- HDU 6396(2018多校第七场1011) Swordsman
场上场下各种TLE到怀疑人生...经过大佬指点之后才知道要用fread才能过,一般的快读不行... 题意:一个剑客打小怪兽,有n头小怪兽,剑客和小怪兽有m个属性.只有剑客的m个属性都大于等于某个小怪兽 ...
- DOM 操作属性
DOM操作就是针对对象的操作 先写一个按钮,<input tupe="button" value="" id="id"> 这 ...
- 基于R语言的RRT算法效率统计
- 报错:空指针java.lang.NullPointerException 原因 Action层 private UserService userservice 上未加@Autowire注解
java.lang.NullPointerException at com.itheima.test.Test2.fun1(Test2.java:18) at sun.reflect.NativeMe ...
- p1627 [CQOI2009]中位数
传送门 分析 https://www.luogu.org/blog/user43145/solution-p1627 代码 #include<iostream> #include<c ...
- window.location和window.location.href和document.location的关系
1,首先来区分window.location和window.location.href. window.location.href是一个字符串. 而window.location是一个对象,包含属性有 ...