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

发布时间:2025-02-24 点击:30
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源②源码编译
#添加运行用户shell>useradd-s/sbin/nologin-mwww#安装依赖shell>yum-yinstallpcre-develzlib-developenssl-devel#编译安装shell>cd/root/softshell>tarxvfnginx-1.14.2.tar.gzshell>cdnginx-1.14.2shell>./configure--prefix=/usr/local/nginx--user=www--group=www--with-http_ssl_module--with-http_stub_status_module--with-http_realip_module&&make&&makeinstall编译参数说明
1.3、目录介绍查看安装目录/usr/local/nginx
1.4、软件操作参数查看nginx的二进制可执行文件的相关参数
shell>cd/usr/local/nginx/sbinshell>./nginx-h执行后显示
nginxversion:nginx/1.14.2usage:nginx[-?hvvttq][-ssignal][-cfilename][-pprefix][-gdirectives]options:#查看帮助-?,-h:thishelp#查看版本并退出-v:showversionandexit#查看版本和配置选项并退出-v:showversionandconfigureoptionsthenexit#检测配置文件语法并退出-t:testconfigurationandexit#检测配置文件语法打印它并退出-t:testconfiguration,dumpitandexit#在配置测试期间禁止显示非错误信息-q:suppressnon-errormessagesduringconfigurationtesting#发送信号给主进程stop强制退出quit优雅的退出reopen重开日志reload重载配置-ssignal:sendsignaltoamasterprocess:stop,quit,reopen,reload#设置nginx目录$prefix路径-pprefix:setprefixpath(default:/usr/local/nginx/)#指定启动使用的配置文件-cfilename:setconfigurationfile(default:conf/nginx.conf)#在配置文件之外设置全局指令-gdirectives:setglobaldirectivesoutofconfigurationfile一般主要使用:
-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、配置①备份主备服务器的配置文件
shell>cd/etc/keepalivedshell>cpkeepalived.confkeepalived.conf_bak②分别修改主备服务器配置文件
shell>vimkeepalived.conf示例配置文件说明
!configurationfileforkeepalived#发送邮件的配置global_defs{notification_email{acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_fromalexandre.cassen@firewall.locsmtp_server192.168.200.1smtp_connect_timeout30router_idlvs_devel}#vrrp协议的配置vrrp_instancevi_1{#工作模式statemaster#监听的网卡interfaceeth0#虚拟路由id需要和备服务器一致virtual_router_id51#权重优先级priority100#vrrp包的发送周期1sadvert_int1#权限验证authentication{auth_typepassauth_pass1111}#需要绑定切换的vipvirtual_ipaddress{192.168.200.16192.168.200.17192.168.200.18}}主服务器
!configurationfileforkeepalivedglobal_defs{notification_email{acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_fromalexandre.cassen@firewall.locsmtp_server192.168.200.1smtp_connect_timeout30router_idlvs_devel}vrrp_instancevi_1{statemasterinterfaceeth0virtual_router_id51priority100advert_int1authentication{auth_typepassauth_pass1111}#master默认只需要修改使用vip即可virtual_ipaddress{192.168.17.200}}备服务器
!configurationfileforkeepalivedglobal_defs{notification_email{acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_fromalexandre.cassen@firewall.locsmtp_server192.168.200.1smtp_connect_timeout30router_idlvs_devel}vrrp_instancevi_1{#修改工作模式为备statebackupinterfaceeth0virtual_router_id51priority100advert_int1authentication{auth_typepassauth_pass1111}#注意修改vipvirtual_ipaddress{192.168.17.200}}③分别按照顺序启动主服务器和备服务器的keepalived
shell>servicekeepalivedstart④查看主备服务器的网卡信息
#需要通过ipa命令查看分别在server01和server03查看shell>ipa2.4、模拟故障
模拟服务器故障宕机,查看是否可以切换服务到备用机器。
模拟宕机,关闭server01 master服务器,vip自动切换到server03 backup服务器
#抓包vrrpshell>yum-yinstalltcpdumpshell>tcpdumpvrrp-n

新接手网站后SEO优化开始前必须弄清楚的问题
网站制作中锚文本布局以及变化的意义
网站建设中制作网页需要掌握哪些知识
生成全静态,对网站有什么好处
网络推广为什么会引起企业的信任?
明确需求合理分工是提高网站建设效率的基础保障
企业外包网站建设需要注意什么
你的网站是营销型网站吗,营销型网站应具备怎样的特点?