系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > server > anz > 详细页面

nginx结合keepalived实现高可用的完整步骤

时间:2019-12-16来源:系统城作者:电脑系统城

前言

为了满足系统的高可用,一般都需要搭建集群。当主机挂掉的时候,我们的系统还可以继续提供服务。当我们使用nginx作为反向代理和动静分离服务器的时候,也是如此。实现系统的高可用性,是我们程序员关注的重点。本文介绍了nginx结合keepalived实现主从模式搭建高可用集群。

前提知识

本文不作过多的nginx相关配置介绍,默认读者已经了解nginx的相关知识。

keepalived的介绍

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

系统架构图

实现步骤

1.环境配置

1.1 安装nginx

安装相关依赖


 
  1. yum install pcre-devel zlib zlib-devel openssl openssl-devel

上传解压压缩包


 
  1. tar zxvf nginx-1.12.2.tar.gz

创建目录,检测配置


 
  1. mkdir -p /usr/local/nginx
  2. ./configure --prefix=/usr/local/nginx

预编译和安装


 
  1. make && make install

启动、停止相关命令


 
  1. cd /usr/local/nginx/sbin/
  2. ./nginx
  3. ./nginx -s stop
  4. ./nginx -s start

1.2 安装keepalived


 
  1. yum install -y keepalived

2.主机配置

修改keepalived配置文件


 
  1. vim /etc/keepalived/keepalived.conf

修改的内容如下


 
  1. #新增的配置
  2. vrrp_script chk_http_port {
  3. script "/shell/nginx_check.sh" #脚本地址
  4. interval 2 #检测脚本执行的间隔
  5. weight 2 #比重
  6. }
  7.  
  8. vrrp_instance VI_1 {
  9. state MASTER #主服务器为MASTER,从服务器为BACKUP
  10. interface eth0 #网卡
  11. virtual_router_id 51 #主、备机的virtual_router_id必须相同
  12. priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100
  13. advert_int 1
  14. authentication {
  15. auth_type PASS
  16. auth_pass 1111
  17. }
  18. #虚拟IP地址
  19. virtual_ipaddress {
  20. 192.168.126.88
  21. }
  22. }

创建编写脚本文件


 
  1. mkdir /shell/nginx_check.sh
  2. vim /shell/nginx_check.sh

脚本文件内容如下


 
  1. #!/bin/bash
  2. A=`ps -C nginx –no-header |wc -l`
  3. if [ $A -eq 0 ];then
  4. /usr/local/nginx/sbin/nginx
  5. sleep 2
  6. if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  7. killall keepalived
  8. fi
  9. fi

3.从机配置

修改keepalived配置文件


 
  1. vrrp_instance VI_1 {
  2. state BACKUP #主服务器为MASTER,从服务器为BACKUP
  3. interface eth0 #网卡
  4. virtual_router_id 51 #主、备机的virtual_router_id必须相同
  5. priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小
  6. advert_int 1
  7. authentication {
  8. auth_type PASS
  9. auth_pass 1111
  10. }
  11. #虚拟IP地址
  12. virtual_ipaddress {
  13. 192.168.126.88
  14. }
  15. }

4.启动服务

启动


 
  1. service keepalived start

查看虚拟IP地址


 
  1. ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. inet6 ::1/128 scope host
  6. valid_lft forever preferred_lft forever
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  8. link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
  9. inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0
  10. inet 192.168.126.88/32 scope global eth0
  11. inet6 fe80::20c:29ff:fe4f:31ce/64 scope link
  12. valid_lft forever preferred_lft forever

5.关闭防火墙测试

关闭防火墙


 
  1. service iptables stop
  2. #查看防火墙是否开机自启动
  3. chkconfig --list | grep iptables
  4. chkconfig iptables off

登陆虚拟IP地址查看


 
  1. http://192.168.126.88/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载