Nginx+Keepalived实现Web服务器高可用

2021-02-12    分类: 网站建设

1、Nginx

业务背景

现公司需求快速搭建web服务器,对外提供给用户web服务。

需求拆分

需要基于http协议的软件,搭建服务实现

介绍

常见用法:

1) web服务器软件 httpd http协议

同类的web服务器软件:apache(老牌) nginx(俄罗斯) IIS(微软)

2)代理服务器 反向代理

3)

Nginx架构的特点:

①高可靠:稳定性 master进程 管理调度请求分发到哪一个worker=> worker进程 响应请求 一master多worker②热部署 :(1)平滑升级 (2)可以快速重载配置③高并发:可以同时响应更多的请求 事件 epoll模型 几万④响应快:尤其在处理静态文件上,响应速度很快 sendfile⑤低消耗:cpu和内存 1w个请求 内存2-3MB⑥分布式支持 :反向代理 七层负载均衡

官方网址:http://nginx.org/

1.2、安装

常见安装方式:

①yum安装配置,需使用Nginx官方源或者EPEL源②源码编译

  1. #添加运行用户 
  2. shell > useradd -s/sbin/nologin -M www 
  3. #安装依赖 
  4. shell > yum -y install pcre-devel zlib-devel openssl-devel 
  5. #编译安装 
  6. shell > cd /root/soft 
  7. shell > tar xvf nginx-1.14.2.tar.gz 
  8. shell > cd nginx-1.14.2 
  9. shell > ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module && make && make install 

编译参数说明

1.3、目录介绍

查看安装目录/usr/local/nginx

1.4、软件操作参数

查看nginx的二进制可执行文件的相关参数

  1. shell > cd /usr/local/nginx/sbin 
  2.  shell > ./nginx -h 

执行后显示

  1. nginx version: nginx/1.14.2 
  2.  Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] 
  3.   
  4.  Options: 
  5.  #查看帮助 
  6.  -?,-h : this help 
  7.  #查看版本并退出 
  8.  -v : show version and exit 
  9.  #查看版本和配置选项并退出 
  10.  -V : show version and configure options then exit 
  11.  #检测配置文件语法并退出 
  12.  -t : test configuration and exit 
  13.  #检测配置文件语法打印它并退出 
  14.  -T : test configuration, dump it and exit 
  15.  #在配置测试期间禁止显示非错误信息 
  16.  -q : suppress non-error messages during configuration testing 
  17.  #发送信号给主进程 stop强制退出 quit优雅的退出 reopen重开日志 reload重载配置 
  18.  -s signal : send signal to a master process: stop, quit, reopen, reload 
  19.  #设置nginx目录 $prefix路径 
  20.  -p prefix : set prefix path (default: /usr/local/nginx/) 
  21.  #指定启动使用的配置文件 
  22.  -c filename : set configuration file (default: conf/nginx.conf) 
  23.  #在配置文件之外设置全局指令 
  24.  -g directives : set global directives out of configuration file 

一般主要使用:

-s参数控制管理nginx服务-V参数查看nginx开启的模块和编译参数-t参数检测配置文件是否有错误

2、Keepalived实现高可用

业务背景

单例web服务器能够满足业务基本需求,提供web服务。但是,存在单点故障的问题,即当服务器宕机后,用户将无法获取到服务响应。

为了能够提高用户体验度,能够持续得给用户提供优质的服务,当web服务器不可用时,可以有备用服务器接替web服务器的工作,继续为用户提供响应。其中,还要解决一个问题,需要备用服务器能够快速自动切换过来。

一般将以上业务需求,称为实现服务的高可用HA。

需求拆分

也就是高可用的实现核心:

①冗余服务器(备份服务器)

②自动切换 可以通过绑定虚拟IP的方式 用户通过VIP访问服务

2.1、介绍

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

2.3、配置

①备份主备服务器的配置文件

  1. shell > cd /etc/keepalived 
  2.  shell > cp keepalived.conf keepalived.conf_bak 

②分别修改主备服务器配置文件

  1. shell > vim keepalived.conf 

示例配置文件说明

  1. ! Configuration File for keepalived 
  2.  #发送邮件的配置 
  3.  global_defs { 
  4.  notification_email { 
  5.  acassen@firewall.loc 
  6.  failover@firewall.loc 
  7.  sysadmin@firewall.loc 
  8.  } 
  9.  notification_email_from Alexandre.Cassen@firewall.loc 
  10.  smtp_server 192.168.200.1 
  11.  smtp_connect_timeout 30 
  12.  router_id LVS_DEVEL 
  13.  } 
  14.  #vrrp协议的配置 
  15.  vrrp_instance VI_1 { 
  16.  #工作模式 
  17.  state MASTER 
  18.  #监听的网卡 
  19.  interface eth0 
  20.  #虚拟路由id 需要和备服务器一致 
  21.  virtual_router_id 51 
  22.  #权重 优先级 
  23.  priority 100 
  24.  #vrrp包的发送周期 1s 
  25.  advert_int 1 
  26.  #权限验证 
  27.  authentication { 
  28.  auth_type PASS 
  29.  auth_pass 1111 
  30.  } 
  31.  #需要绑定切换的VIP 
  32.  virtual_ipaddress { 
  33.  192.168.200.16 
  34.  192.168.200.17 
  35.  192.168.200.18 
  36.  } 
  37.  } 

主服务器

  1. ! Configuration File for keepalived 
  2. global_defs { 
  3. notification_email { 
  4. acassen@firewall.loc 
  5. failover@firewall.loc 
  6. sysadmin@firewall.loc 
  7. notification_email_from Alexandre.Cassen@firewall.loc 
  8. smtp_server 192.168.200.1 
  9. smtp_connect_timeout 30 
  10. router_id LVS_DEVEL 
  11. vrrp_instance VI_1 { 
  12. state MASTER 
  13. interface eth0 
  14. virtual_router_id 51 
  15. priority 100 
  16. advert_int 1 
  17. authentication { 
  18. auth_type PASS 
  19. auth_pass 1111 
  20. #master默认只需要修改使用VIP即可 
  21. virtual_ipaddress { 
  22. 192.168.17.200 

备服务器

  1. ! Configuration File for keepalived 
  2.  global_defs { 
  3.  notification_email { 
  4.  acassen@firewall.loc 
  5.  failover@firewall.loc 
  6.  sysadmin@firewall.loc 
  7.  } 
  8.  notification_email_from Alexandre.Cassen@firewall.loc 
  9.  smtp_server 192.168.200.1 
  10.  smtp_connect_timeout 30 
  11.  router_id LVS_DEVEL 
  12.  } 
  13.  vrrp_instance VI_1 { 
  14.  #修改工作模式为备 
  15.  state BACKUP 
  16.  interface eth0 
  17.  virtual_router_id 51 
  18.  priority 100 
  19.  advert_int 1 
  20.  authentication { 
  21.  auth_type PASS 
  22.  auth_pass 1111 
  23.  } 
  24.  #注意修改VIP 
  25.  virtual_ipaddress { 
  26.  192.168.17.200 
  27.  } 
  28.  } 

③分别按照顺序启动主服务器和备服务器的keepalived

  1. shell > service keepalived start 

④查看主备服务器的网卡信息

  1. #需要通过ip a命令查看 分别在server01和server03查看 
  2.  shell > ip a 

2.4、模拟故障

模拟服务器故障宕机,查看是否可以切换服务到备用机器。

模拟宕机,关闭server01 master服务器,VIP自动切换到server03 backup服务器

  1. #抓包vrrp 
  2. shell > yum -y install tcpdump 
  3. shell > tcpdump vrrp -n 

网站标题:Nginx+Keepalived实现Web服务器高可用
分享路径:/news/100622.html

成都网站建设公司_创新互联,为您提供App设计定制开发星空体育app最新版本(2024已更新)软件开发域名注册建站公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设