Nginx lvs +keepalived

一.nginx+keepalive部署

1.架构

在这里插入图片描述

2.主备负载均衡器配置

2.1编译安装nginx

yum -y install pcre-devel zlib-devel make					#安装编译环境
useradd -M -s /sbin/nologin nginx							#创建专门管理nginx的系统用户

tar xf /opt/nginx-1.12.0.tar.gz -C /opt/					#解压nginx源码包
cd /opt/nginx-1.12.0/										#进入解压后的目录,对nginx的模块进行配置
./configure \
--prefix=/usr/local/nginx \									#配置nginx安装路径
--user=nginx \												#配置nginx管理用户
--group=nginx \												#配置nginx所属组
--with-http_stub_status_module \							#监视模块,可以查看目前的连接数等一些信息(非核心模块)
--with-stream												#四层反向代理模块(想启动四层代理,必须安装该模块)

make -j 4 && make install									#编译安装nginx
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/			#将nginx命令做软链接,方便后续使用

vim /lib/systemd/system/nginx.service						#将nginx添加到系统服务当中(方便启动/关闭/开机自启)
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service					#赋予nginx服务文件执行权限
systemctl enable --now nginx.service						#设置nginx为开机自启,并立即启动nginx服务
netstat -natp |grep nginx									#查看nginx是否启动成功

3.2 配置nginx反向代理

vim /usr/local/nginx/conf/nginx.conf						#四层反向代理
stream{
server {
    listen 80;											        #监听1314端口
    proxy_pass backend_server;								#调用对应的四层反向代理服务
}
upstream backend_server {									#配置四层反向代理模块的服务名(与proxy_pass调用的服务名对应)
    server 192.168.111.20:80 weight=1;						#配置四层反向代理的调度算法、IP/端口、权重等
    server 192.168.111.30:80 weight=1;
}															#对应upstream模块的大括号
}															#对应stream模块的大括号
约47行:七层反向代理的端口注释掉,或者换一个端口号,如下图

nignx -t													#检查nginx配置文件语法错误
systemctl restart nginx										#重启nginx服务

3.3安装keepalive 高可用

yum install -y keepalived									#安装keepalived高可用工具
vim /etc/keepalived/check_nginx.sh							#编写nginx健康检查脚本
#!/bin/bash
#effect: Nginx健康检查
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")			#ps命令查看运行中的进程-->grep过滤nginx服务-->-v排除这条命令进程
if [ $count -eq 0 ];then									#如果运行的nginx命令数量为0,则判断nginx服务停止运行
  systemctl stop keepalived									#判断成功后,停止主keepalived进程(此时备启动keepalived进程)
fi

chmod +x /etc/keepalived/check_nginx.sh						#赋予脚本执行权限
crotab -e													#设置脚本每分钟执行一次(也可以编写shell脚本设置开机自启,sleep控制时间,缩短间隔时间)
	*/1 * * * * /etc/keepalived/check_nginx.sh

cd /etc/keepalived/
vim keepalived.conf											#修改keepalived高可用配置(详情如图)
	10行:smtp_server 127.0.0.1
	12行:router_id NGINX_01
	13-16行:删除
	17行:interface ens33
 	26行:192.168.111.110
 	27-28行:删除
 	29行及以下:删除
	14行插入以下内容:
		vrrp_script check_nginx {
		script "/etc/keepalived/check_nginx.sh"
		interval 2
		weight 2
		}
	33行插入一下内容:
		track_script {
    	check-nginx
		}

systemctl start keepalived.service							#启动keepalived服务

3.4备调度器配置

#(在主调度器操作)scp keepalived.conf 192.168.13.40:`pwd`	#将配置文件远程传送给备用负载调度器
vim /etc/keepalived/keepalived.conf
	12行:router_id NGINX_02								#设置负载均衡类型和主次级别
	21行:state BACKUP										#设置状态为BACKUP(备份状态,必须大写)
	24行:priority 90										#优先级只要比master低就行

systemctl start keepalived									#启动keepalived高可用服务
ip addr														#此时查看ip,会发现没有VIP地址

#(在主调度器操作)systemctl stop nginx						#将主服务器nginx服务停止

4.配置节点服务器

4.1安装jdk环境

#安装jdk环境(Tomcat是基于jdk环境运行的)
tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local/				#将源码包下载至对应的目录

cat >/etc/profile.d/jdk.sh<<EOF								#设置jdk相关的环境变量(以前有解释过)
JAVA_HOME=/usr/local/jdk1.8.0_91
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
EOF

source /etc/profile.d/jdk.sh								#刷新环境变量配置文件

4.2编译安装tomcat

cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
##启动tomcat ##
#后台启动
/usr/local/tomcat/bin/startup.sh 
或
/usr/local/tomcat/bin/catalina.sh start	
	
#前台启动
/usr/local/tomcat/bin/catalina.sh run		

netstat -natp | grep 8080

4.3 配置双tomcat虚拟主机

1.创建 aa 和 bb项目目录和文件
mkdir /usr/local/tomcat/webapps/aa
mkdir /usr/local/tomcat/webapps/bb
echo "This is aa page\!" > /usr/local/tomcat/webapps/aa/index.jsp
echo "This is bb page\!" > /usr/local/tomcat/webapps/bb/index.jsp
2.修改 Tomcat 主配置文件 server.xml
vim /usr/local/tomcat/conf/server.xml
--165行前--插入
<Host name="www.aa.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> #这里指主机
	<Context docBase="/usr/local/tomcat/webapps/aa" path="" reloadable="true" />
	#  这里指内容
</Host>

<Host name="www.bb.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/webapps/bb" path="" reloadable="true" />
</Host>
###  4.4配置nginx
~~~和上面一样
vim /usr/local/nginx/conf/nginx.conf
	39行:charset utf-8;					#开启万国字符集
	47行下插入:
	location ~ jsp$ {
    proxy_pass http://192.168.111.20:8080;
	}

nginx -t									#检查语法错误
systemclt start nginx						#启动nginx服务

总结

keepalive和lvs是两个完全不同的工具,一个lvs实现了负载均衡解决高并发,keepalive是实现了高可用防止主机宕机造成的损失,这两个结合是平时生产 环境中用的非常多的架构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值