注:所用linux系统为nbuntu系统,nginx版本为1.4.2,并且ngninx已经可以正常进行启动并访问。
负载均衡:将多个服务器或者同一台服务器的多个端口统一到一起,从而实现将一个任务分摊到多个单元上,从而实现多个操作单元共同完成任务。
keepalived:通过虚拟路由冗余来实现高可用功能,将原来的路由器屏蔽掉,来虚拟一个路由来对外提供服务,并且当nginx宕机之后,切换到备用的nginx,并对原来的nginx进行重启。
nginx负载均衡配置
配置文件所需要修改的
#在http节点下边添加
upstream linux-cluster{ #表示将这几个服务器或者几个端口组成一个组,并起一个名字
server localhost:8079 weight=1;
server localhost:8080 weight=1;
server localhost:8081 weight=1;
}
server { #配置一个服务器,拦截请求使用,然后进行转发到用户组中
listen 80;
server_name localhost;
location /{
proxy_pass http://linux-cluster; #转发到组中,会根据规则来进行分配
index index.html index.htm;
}
}
注:负载均衡中组中可以添加分配策略,主要分为三种:1.轮询(默认策略) 2.权重(根据计算机性能进行分配) 3.ip_hash(在第一访问的时候就进行计算出来他所应该访问的服务器,以后只访问那一个)。负载均衡是实质就是在原来的服务器上重新添加一个服务器,然后将他的路径中的前往的url改为组名即可。
keepalived配置
下载对应的压缩包文件
wget wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
解压并配置
tar -xzvf keepalived-1.2.18.tar.gz
进入文件夹中进行编译
./configure --prefix=/usr/local/keepalived
make && make install
修改配置文件
# 添加检测模块
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
interval 2 #检测时间间隔
weight -20 #如果条件成立的话,则权重 -20
}
在实例中添加配置块
track_script {
chk_nginx #执行 Nginx 监控的服务
}
其他可以根据官方文档来配置
官方文档:keepalived官方文档查看
添加检测脚本 脚本需要添加在/etc/keepalived目录下
#!/bin/bash
A=`ps -C nginx -Cno-header |wc -l`
if [ $A -eq 1 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 1 ];then
killall keepalived
fi
fi