问:天冷怎么办?
答:手敲代码、头皮发麻、血液循环加速…就不冷啦!
问:Nginx是什么吖?
答:Nginx是一个高性能的HTTP和反向代理服务器。
问:有什么优势啊?
答:稳定性高、丰富的功能集、示例配置文件、低系统消耗。
问:有哪些应用例子不?
答:百度、新浪、网易、京东、淘宝、腾讯都在用。
问:那keepalived又是用来干嘛的?
答:keepalived作用是用来检测服务器的状态,若有一台web服务器宕机或出现故障,它会检测到并且将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作。当服务器工作正常后它会自动将其加入服务器群中。这些工作都可以自动完成、无需人工干涉。
问:那今天小陈你要分享什么?
答:今天分享的是:使用Keepalived搭建负载均衡的主备Nginx实现高可用的web应用服务器。
环境准备:
Tomcat服务器:3台
Nginx服务器:2台
注:笔者这里使用的都是Linux7版本的。
Tomcat服务器下载:
https://tomcat.apache.org/download-90.cgi
Nginx服务器下载:
http://nginx.org/en/download.html
Keepalived下载:
https://www.keepalived.org/download.html
Tomcat部署:
tar -xzf apache-tomcat-9.0.31.tar.gz
项目目录位于:apache-tomcat-9.0.31/webapps 下
配置项目根目录访问指定项目:
vi apache-tomcat-9.0.31/conf/server.xml
"localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
"" docBase="SelfSystem" debug="0" reloadable="true" />
</Host>
启动项目:
cd apache-tomcat-9.0.31/bin
./startup.sh
Nginx部署
tar -xzf nginx-1.17.8.tar.gz
编译安装nginx
cd nginx-source
./configure --prefix=/opt/nginx
make
make install
配置nginx负载均衡:
vi /opt/nginx/conf/nginx.conf
启动nginx
cd /opt/nginx/sbin
./nginx
Keepalived部署
tar -xzf keepalived-2.0.19.tar.gz
cd keepalived-2.0.19/
./configure --prefix=/opt/keepalived
make
make install
主Nginx服务器的keepalived配置如下:
vi /opt/keepalived/etc/keepalived/etc/keepalived/keepalived.conf
备Nginx服务器的keepalived配置如下:
vi /opt/keepalived/etc/keepalived/etc/keepalived/keepalived.conf
配置keepalived作为linux服务启动:
cp /opt/keepalived-2.0.19/keepalived/etc/init.d/keepalived /etc/init.d/ ##系统服务
cp /opt/keepalived-2.0.19/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ ##系统日志
创建目录:
mkdir -p /etc/keepalived
cp /opt/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /opt/keepalived-2.0.19/bin/keepalived /sbin/keepalived
启动服务,开机自启:
systemctl start keepalived.service
systemctl enable keepalived.service
检查:两台nginx服务器中只有一台机子有这个vip,如果两台同时出现,则出现脑裂,例如当防火墙开启了的时候。
一个http请求会有一台tomcat服务器响应。
由于负载均衡配置的是轮循,因此会按顺序轮流相应。
此时,尝试将主nginx服务器挂起或关机,此时,vip会自动漂移到从nginx服务器上。
ip addr | grep 192.168.2.222
主nginx服务器虽然宕机,但是从nginx服务器开始提供服务,从而实现业务不中断,实现了高可用。