nginx keepalived配置(Nginx+Keepalived实现Web服务器高可用)
nginx keepalived配置
Nginx+Keepalived实现Web服务器高可用1、Nginx
业务背景
现公司需求快速搭建web服务器,对外提供给用户web服务。
需求拆分
需要基于http协议的软件,搭建服务实现
介绍
常见用法:
1) web服务器软件 httpd http协议
同类的web服务器软件:apache(老牌) nginx(俄罗斯) IIS(微软)
2)代理服务器 反向代理
3)邮箱代理服务器 IMAP POP3 SMTP
4)负载均衡功能 LB loadblance
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/soft
shell>tarxvfnginx-1.14.2.tar.gz
shell>cdnginx-1.14.2
shell>./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/sbin
shell>./nginx-h
执行后显示
nginxversion:nginx/1.14.2
Usage: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等)的高可用解决方案软件。
keepalived主要使用三个模块,分别是core、check和vrrp。
core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
check负责健康检查,包括常见的各种检查方式。
vrrp模块是来实现VRRP协议的。
2.2、安装
master和backup都需要进行安装,也就是server01和server03机器
#安装keepalived shell > yum -y install keepalived
keepalived需要使用的目录和文件:
2.3、配置
①备份主备服务器的配置文件
shell>cd/etc/keepalived
shell>cpkeepalived.confkeepalived.conf_bak
②分别修改主备服务器配置文件
shell>vimkeepalived.conf
示例配置文件说明
!ConfigurationFileforkeepalived
#发送邮件的配置
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
#vrrp协议的配置
vrrp_instanceVI_1{
#工作模式
stateMASTER
#监听的网卡
interfaceeth0
#虚拟路由id需要和备服务器一致
virtual_router_id51
#权重优先级
priority100
#vrrp包的发送周期1s
advert_int1
#权限验证
authentication{
auth_typePASS
auth_pass1111
}
#需要绑定切换的VIP
virtual_ipaddress{
192.168.200.16
192.168.200.17
192.168.200.18
}
}
主服务器
!ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
vrrp_instanceVI_1{
stateMASTER
interfaceeth0
virtual_router_id51
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
#master默认只需要修改使用VIP即可
virtual_ipaddress{
192.168.17.200
}
}
备服务器
!ConfigurationFileforkeepalived
global_defs{
notification_email{
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server192.168.200.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
vrrp_instanceVI_1{
#修改工作模式为备
stateBACKUP
interfaceeth0
virtual_router_id51
priority100
advert_int1
authentication{
auth_typePASS
auth_pass1111
}
#注意修改VIP
virtual_ipaddress{
192.168.17.200
}
}
③分别按照顺序启动主服务器和备服务器的keepalived
shell>servicekeepalivedstart
④查看主备服务器的网卡信息
#需要通过ip a命令查看 分别在server01和server03查看 shell > ip a
2.4、模拟故障
模拟服务器故障宕机,查看是否可以切换服务到备用机器。
模拟宕机,关闭server01 master服务器,VIP自动切换到server03 backup服务器
#抓包vrrp
shell>yum-yinstalltcpdump
shell>tcpdumpvrrp-n
- tornado异步编程(Tornado Web服务器中处理空白字符的解决方案)
- web服务器主要有哪些(浅谈Web服务器和应用服务器的区别)
- 由于Web服务器上的“ISAPI 和CGI 限制”的解决方法
- iisweb服务器的启动与配置(win7 iis配置怎么配置 Win7配置IIS服务器图文教程)
- iis服务器如何搭建一个网站(配置IIS网站web服务器的安全策略配置解决方案)
- 搭建web服务器与设置(怎样在Win7系统中搭建Web服务器)
- goweb框架哪个用的最多(教你搭建一个简单的Go Web服务器)
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- apache怎么配置服务器(Apache2 WEB服务器的配置步骤分享)
- nginx 可以部署java吗(Java-利用Nginx负载均衡实现Web服务器)
- web服务器配置怎么选才是合适的呢(个人web服务器要用哪种服务器比较好?)
- 属于web服务器的有哪些(web服务器有几种类型?)
- 常用web服务器与简介(最流行的5大开源web服务器)
- net微服务架构部署方式(基于Apache的支持.NET2.0的Web服务器搭建)
- iisweb服务器版本(配置IIS服务器 支持sis下载等)
- web服务器与应用服务器的区别(web服务器是什么?web服务器有哪些呢?)
- 中秋节买啤酒,预算超过7元试试这8种啤酒,麦香浓郁都是真啤酒(预算超过7元试试这8种啤酒)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
- ()
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
热门推荐
- docker如何查看容器目录(docker 查看容器的挂载目录操作)
- mysql怎么删除用户操作(解决mysql删除用户 bug的问题)
- 如何替换html5视频播放器(HTML5自定义视频播放器源码)
- python钉钉机器人(python钉钉机器人运维脚本监控实例)
- mysql mvcc 隔离级别(详解MySQL事务的隔离级别与MVCC)
- 分享mysql设计规范(MySQL 可扩展设计的基本原则)
- submit与button的区别
- dedecms怎么添加alt标签(dedecms 取消栏目列表页文章标题设置推荐后的加粗)
- ASP.NET中Web API的简单实例
- dedecms默认模板目录(DEDECMS 5.7 将data目录迁移后,网站地图无法打开和更新的解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9