1.DNS(Domain Name System,域名系统)
2.负载均衡的种类
1.apache +JK(解决请求转发的插件)
2.Nginx(Nginx自带请求转发的功能)
3.LVS(Linux Virtural Server)+keepalived
在1和2中apache和Nginx起到的作用就是负载均衡器,为了实现
3.Keepalived 配置详解
安装
yum -y install keepalived //安装keepalived
作用:仅仅是实现高可用的功能,防止单点故障
它是以VRRP(virtual Router Redundancy Protecel,虚拟路由冗余协议)
/etc/keepalived /keepalived .conf
1.GloBal configuration全局配置
gloabal definitions 全局定义
static routes 静态路由
2.VRRP configuration (Virtual Router Redundancy Protocol ,虚拟路由冗余协议)
Vrrp synchronization group 同步组
Vrrp instances 路由实例
3. LVS configuration
Keepalived 几个问题总结
1.如何在状态转换时进行通知
notify_master
notify_backup
nofity_fault;
2.如何配置ipvs
virtual server
real server
healthCheck(健康检查)
虚拟服务器
virtual_server 192.168.200.100 443 {
delay_loop 6 延迟几个周期 才做服务重启
lb_algo rr 调度算法
lb_kind NAT 调度方法
nat_mask 255.255.255.0 掩码
persistence_timeout 50 持久事件
protocol TCP 协议
real_server 192.168.201.100 443 {
weight 1 权重
SSL_GET { 常见检查的有HTTP_GET|SSL_GET|TCP
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc 加密算法
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3 链接超时事件
nb_get_retry 3 重试次数
delay_before_retry 3 在每次重试之前延迟多长事件
}
}
}
3.如何对某特定服务实现高可用
配置keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.9.136
smtp_connect_timeout 30
router_id LVS_DEVEL
}
//该脚本主要是检查故障转移
vrrp_script chk_mantaince_down {
script "[[ -e /etc/keepalived/down ]] && exit 1 || exit 0" //如果有这个文件表示需要故障转移
interval 1
weight - 2
}
//检查nginx服务是否正在运行
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 1 检查间隔时间是1s
weight -2
fall 2 如果连续两次检查Nginx服务都是失败的话,就会故障转移
rise 1 //只要有一次就成功就行可以表示服务正常
}
vrrp_instance VI_1 {
state MASTER
interface eth2 //设置接口,这里一定需要和主机的相同
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.9.100
}
//追踪脚本
track_script {
chk_mantaince_down //检查是否宕机脚本
chk_nginx //检查Nginx 是否正常运行脚本
}
//通知总共有三个,分别如下,如果没有参数的话,就可以把引号去掉,如果有参数的话必须带上引号
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
//设置虚拟路由IP
virtual_server 192.168.9.100 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
//真是服务器IP
real_server 192.168.9.129 80 {
weight 1
HTTP_GET {
url {
path /
state_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.9.134 80{
weight 1
HTTP_GET { //这里使用的是HTTP_GET进行检查
url {
path /
state_code=200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
通过ipvsadm 来进行查看虚拟路由的IP 以及真实IP ipvsadm -L -n
下面表示的情形是 192.168.9.129:80 和192.168.9.134:80 绑定在虚拟IP 192.168.9.100 上面
[root@zdc init.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.9.100:80 rr persistent 50 //表示虚拟IP
-> 192.168.9.129:80 Masq1 0 0 //真实IP
-> 192.168.9.134:80 Masq1 0 0 //真实IP
LVS+Keepalived详解
1.在 /etc/init.d 文件目录下创建 realserver 文件,并把下面的内容复制进去,并且添加全权限 chmod 775 realserver`
#!/bin/bash
#chkconfig: 2345 79 20
#description:realserver
SNS_VIP=192.168.1.98 //设置虚IP,这个可以根据自己的喜好进行设置
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
2.启动刚才编写的文件realserver
./realserver start //注意这里是规定
3.查看端口号 ifconfig ,如果增加了一个接口 lo:0表明成功添加了一个回环接口,格式如下
lo:0 Link encap:Local Loopback
inet addr:192.168.9.200 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1
4.开启httpdfuw
完成这三步表示已经成功了
4:并发量的总结
1. tomcat 的最大并发量实在1000 默认是150,一般情况下tomcat超过250 性能就会降低 默认的端口号是8080
2. nginx支持的并发量是在5000;默认的端口号是80
5. 默认端口号总结
查看端口号 ss -tanl
查看IP地址 ip addr show
1.Mysql 端口号-3306
2.Ftp端口号:21
3.Nginx 端口号:80
4.Redis 端口号:6379