keepalived
企业keepalived服务应用:
实践案例一:更改nginx反向代理只监听vip地址
企业keepalived服务应用:
实践案例一:更改nginx反向代理只监听vip地址 s
实现
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
echo "1" >/proc/sys/net/ipv4/ip_nonlocal_bind
第三个里程碑:进行测试
企业实践案例二:让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
ps -ef |grep [n]ginx |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
####第二个里程碑-根据条件-书写脚本
[root@lb01 scripts]# cat check_web.sh (名称不能写关于有nginx字母的会过滤出来)
#!/bin/bash
nginx_info=$(ps -ef |grep -c [n]ginx)
if [ $nginx_info -lt 2 ];then
echo "stop keepalived"
/etc/init.d/keepalived stop
else
echo "nginx running"
fi
####第三个里程碑-添加权限
[root@lb02 conf]# chmod +x /server/scripts/check_web.sh
[root@lb02 conf]# ll /server/scripts/check_web.sh
-rwxr-xr-x 1 root root 174 Mar 30 17:47 /server/scripts/check_web.sh
####第四个里程碑-测试
[root@lb01 scripts]# /server/scripts/check_web.sh
nginx running
[root@lb01 scripts]#
####第五个里程碑-放入到keepalived.conf
####下面是lb02的配置文件 lb01上面自己修改下。
global_defs {
router_id LVS_02
}
vrrp_script check_web {
script "/server/scripts/web_jiankong.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
}
}
####第六个里程碑-测试
注释:如果weight 的参数是正数一般的话设置在备份的负载均衡服务器上,如果参数是负数一般是设置在主负载均衡服务上
企业实践案例三:keepalived多实例配置
####第一个里程碑-配置keepalived-配置双主
####lb01
#lb01
global_defs {
router_id lb01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
vrrp_instance lb02 {
state BACKUP
interface eth0
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4/24 dev eth0 label eth0:2
}
}
#lb02
global_defs {
router_id lb01
}
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
}
}
vrrp_instance lb02{
state MASTER
interface eth0
virtual_router_id 52
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4/24 dev eth0 label eth0:2
}
}
####第二个里程碑-配置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
#########第四个里程碑-浏览器进行测试
对称加密算法常见的有
最早期的称为DES(Data Encryption Standard),是美国国家安全局征集加密算法时,由一
个美国公司提出的,是公开可以使用的,使用的是56位的密钥长度,但是由于计算机的发
展,可以使用计算机对56 位的密钥进行暴力破解了 因此DES渐渐不再被使用。4
0一种新的算法,将DES 加密后,再进行一次DES加密,然后再进行一次DES,称为3DES
算法,是目前使用比较多的加密算法。
口 更安全的加密算法,AES( 高级加密标准)加密算法产生,默认使用128位的加密密钥,但
是也有特殊的AES (AES192 AES256 AES512 等),密钥越长安全性提高的同时,加密效
率就会降低,因此应该选择比较合适的加密算法。
blowfish 加密算法,加密不是按位进行加密的,而是将数据分成大小相同的数据块进行加密
的。
单向加密算法知识总结
单项加密算法常见的有:+
DH 加密算法,主要用于密钥的协商交换。
MD4 MD5(128)4
SHA1(160) SHA(192) SHA(256) SHA(384)4
CRC-32(循环输出校验码),不是加密机制,只是一种校验机制,不提供安全性,正常加密算法是不允许出现输入不一样,输出一样的情况,但CRC 是可以有这样情况的,因为CRC 只
是具有校验功能,不具有加密功能。
单项加密算法的特征
数据输入一样,特征码信息输出必然相同。
雪崩效应,输入的微小改变,将造成输出的巨大改变。
定长输出,无论源数据多大,但结果都是一样的。
不可逆的,无法根据数据指纹,还原出原来的数据信息
非对称加密算法常见的有
RSA,RSA 既是一个公司的名称,也是三个创始人的名称,RSA 既可以加密又可以进行签
名。
口 DSA,只能实现数字签名功能。
口0 ELGamal,属于商业化的加密算法。