首页 > 运维 > nginx > nginx怎么结合keepalived实现高可用

nginx怎么结合keepalived实现高可用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2023-05-12 08:43:11
转载
1355 人浏览过

keepalived的介绍

keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

系统架构图

nginx怎么结合keepalived实现高可用

实现步骤

1.环境配置

1.1 安装nginx

安装相关依赖

yum install pcre-devel zlib zlib-devel openssl openssl-devel
登录后复制

上传解压压缩包

tar zxvf nginx-1.12.2.tar.gz
登录后复制

创建目录,检测配置

mkdir -p /usr/local/nginx
./configure --prefix=/usr/local/nginx
登录后复制

预编译和安装

make && make install
登录后复制

启动、停止相关命令

cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s start
登录后复制

1.2 安装keepalived

yum install -y keepalived
登录后复制

2.主机配置

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf
登录后复制

修改的内容如下

#新增的配置
vrrp_script chk_http_port {
 script "/shell/nginx_check.sh" #脚本地址
 interval 2 #检测脚本执行的间隔
 weight 2 #比重
}

vrrp_instance vi_1 {
 state master #主服务器为master,从服务器为backup
 interface eth0 #网卡
 virtual_router_id 51 #主、备机的virtual_router_id必须相同
 priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100
 advert_int 1
 authentication {
  auth_type pass
  auth_pass 1111
 }
 #虚拟ip地址
 virtual_ipaddress {
  192.168.126.88
 }
}
登录后复制

创建编写脚本文件

mkdir /shell/nginx_check.sh
vim /shell/nginx_check.sh
登录后复制

脚本文件内容如下

#!/bin/bash
a=`ps -c nginx –no-header |wc -l`
if [ $a -eq 0 ];then
  /usr/local/nginx/sbin/nginx
  sleep 2
  if [ `ps -c nginx --no-header |wc -l` -eq 0 ];then
    killall keepalived
  fi
fi
登录后复制

3.从机配置

修改keepalived配置文件

vrrp_instance vi_1 {
  state backup #主服务器为master,从服务器为backup
  interface eth0 #网卡
  virtual_router_id 51 #主、备机的virtual_router_id必须相同
  priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小
  advert_int 1
  authentication {
    auth_type pass
    auth_pass 1111
  }
  #虚拟ip地址
  virtual_ipaddress {
    192.168.126.88
  }
}
登录后复制

4.启动服务

启动

service keepalived start
登录后复制

查看虚拟ip地址

ip addr
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown 
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  inet6 ::1/128 scope host 
    valid_lft forever preferred_lft forever
2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up qlen 1000
  link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
  inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0
  inet 192.168.126.88/32 scope global eth0
  inet6 fe80::20c:29ff:fe4f:31ce/64 scope link 
    valid_lft forever preferred_lft forever
登录后复制

5.关闭防火墙测试

关闭防火墙

service iptables stop
#查看防火墙是否开机自启动
chkconfig --list | grep iptables
chkconfig iptables off
登录后复制

登陆虚拟ip地址查看

http://192.168.126.88/
登录后复制

以上是nginx怎么结合keepalived实现高可用的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
重启nginx出错
来自于 1970-01-01 08:00:00
0
0
0
server - Nginx配置webapp问题
来自于 1970-01-01 08:00:00
0
0
0
Nginx的default.conf问题
来自于 1970-01-01 08:00:00
0
0
0
centos7 - NGINX出现异常
来自于 1970-01-01 08:00:00
0
0
0
uwsgi - 如何用nginx关联django应用
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板