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

admin3年前服务器75

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⑥分布式支持 :反向代理 七层负载均衡

官方网址: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


免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

腾讯服务器是如何保障数据安全的,腾讯服务器在云计算领域处于何种地位

1.腾讯服务器介绍腾讯服务器是腾讯云推出的云计算产品之一,其核心理念是通过提供高性能、低成本、可靠的云服务器,使客户能够以最小的成本获得最大的价值。腾讯服务器提供了多种选择,包括基于云计算、物理服务器...

买空间网靠谱吗,如何在买空间网上购买云服务器

1.买空间网买空间网是一家提供云服务器、虚拟主机、域名注册等服务的公司。成立于2011年,总部位于北京市。公司的宗旨是为用户提供性价比高的云计算产品,为中小企业及个人创业者提供云服务解决方案。2.服务...

浅谈Web服务器的安装与配置

Web服务器主要功能是提供网上信息浏览服务。 一、WEB服务器的介绍: 1、WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。2、最主...

EasyWebServer怎么用?EasyWebServer网站服务器软件使用教程

EasyWebServer怎么用?不少朋友都再问这个问题,下面系统世家大嘴巴根据网络资源整理出来有关资料,希望可以帮到大家,下面我们一起看看吧。EasyWebServer有什么功能遵循HTTP/1.1...

windows下三种web服务器搭建方式

一、第一种方法(live-server)1、安装方法:Npm安装: npm install -g live-server(前提是先安装node.js)然后在所在项目目录下,打开命令行工具,输入 liv...

cn域名价格是如何形成的,解析cn域名价格的因素

1.什么是.cn域名根据互联网域名系统(DNS),每个网站都是通过域名定位的。.cn域名是中国互联网信息中心(CNNIC)授权经营管理注册的中国最最域名(ccTLD),由中国的注册商注册。作为中国的国...