项目描述
模拟企业里的web项目需求,最终目的是构建一个高性能高可用的web集群系统。部署lvs负载均衡系统和keepalived高可用软件,后端使用nginx做web服务器,同时搭建内部的一套基于prometheus的监控系统。使用ansible实现整个集群系统的自动化运维工作。
项目环境
ceotos7 nginx1.25.3 node_exporter-1.4.0 keepalived 1.3.5
nfs4 prometheus-2.43.0 grafana-9.1.2
项目步骤
1、 构建项目架构图
2、安装部署6台虚拟机,做好网络初始化工作
静态配置6台虚拟机的ip地址:(注意:配置后,service network restart刷新网络服务)
关闭防火墙服务,selinux功能等
3、在两台服务器上部署nginx web服务以及使用基于域名的虚拟主机功能,配置2个虚拟主机分别对应两个网站,安装vts模块,了解nginx负载和访问情况
1、到nginx官方网站上下载镜像,解压
curl -O https://nginx.org/download/nginx-1.25.3.tar.gz
tar xf nginx-1.25.3.tar.gz
2、编写nginx安装脚本
3、将脚本scp到web2机器上,编译安装
scp onekey_install_nginx_2023_summer.sh 192.168.196.163:/root
source onekey_install_nginx_2023_summer.sh
4、基于域名的虚拟主机,两个虚拟主机对应两个网站
5、了解nginx的负载和访问情况
4、配置lvs(DR模式)+keepalived实现整个集群高可用和负载均衡
在两台LB负载均衡器上安装keepalived和ipvsadm
yum install keepalived ipvsadm -y
1、在2台负载均衡服务器上的keepalived里实现双vip配置
2、查看vip效果
3、在DR调度器上配置负载均衡策略
在lb1和lb2上执行脚本
4、在后端的realserver上配置vip和arp毒化功能
执行脚本
5、安装nfs服务器,共享网页目录
1、在网络综合服务器,web1,web2上安装nfs服务
yum install nfs-utils -y
在web1和web2上,不需要启动nfs服务,主要是使用nfs服务器共享的文件夹,需要挂载nfs文件系统
2、刷新服务,输出共享目录
3、新建共享目录/web和复制web1上的html目录过来
然后将web1上以前新建的2个网站的网页都scp到nfs的共享目录/web下
4、在web1和web2都挂着nfs共享的目录到html目录下
5、设置web1和web2开机自动挂着nfs共享目录
6、安装ansible服务器,设置好主机清单,配置免密通道,方便批量自动化运维
1、在网络综合服务器上安装ansible自动化运维工具
2、在ansible服务器和其他的服务器之间建立免密通道(单向信任关系)
注意:ansible.cfg 是ansible的配置文件
hosts 里面定义主机清单
Roles 基于角色的playbook存放的文件夹
中括号里的web是一个分组的名字,我们可以在这个分组里添加很多需要去管理的机器的ip地址。
3、在ansible服务器和其他的服务器之间建立免密通道(单向信任关系)
生成密钥对
4、上传公钥到其他服务器
例:web1
5、测试免密通道是否成功
6、测试ansible服务器能否控制所有的服务器
7、安装Prometheus服务,给每个集群里的节点服务器安装node_exporter,再安装 grafna出图展示监控效果
1、源码安装
2、修改解压后的压缩包名字
3、临时和永久修改PATH变量,添加prometheus的路径
4、把prometheus做成一个服务来进行管理,非常方便日后维护和使用
5、重新加载systemd相关的服务,识别Prometheus服务的配置文件,设置开机启动
6、访问Prometheus 的web server
7、安装exporter
将node-exporter传递到所有的服务器上的/root目录下
编写在其他机器上安装node_exporter的脚本
让systemd进程识别node_exporter服务
设置开机启动
启动node_exporter
在ansible服务器上执行安装node_exporter的脚本
在Prometheus服务器上添加被监控的服务器
在windows的浏览器访问http://192.168.196.159:9090/targets
8、安装grafana出图展示
因为这里在做项目的过程种已经导入grafana模板,所以直接进入dashboard界面展示视图效果
8、部署堡垒机,设置防火墙,设置tcp wrapps,只允许堡垒机访问内部服务器并且发布内网的web服务器和堡垒机
1、Tcp wrappers 的配置(允许堡垒机ssh访问)
将web集群里的web1和web2,LB1和LB2上进行tcp wrappers的配置,只允许堡垒机ssh进来,拒绝其他的机器ssh过去
对web组的机器配置tcp wrappers防火墙
对lb组的机器配置tcp wrappers防火墙
测试是否生效,只允许堡垒机ssh过去
2、防火墙+路由器的配置
在防火墙服务器上编写脚本,实现snat和dnat功能,并且开启路由功能
永久开启路由功能
让内核读取配置文件,开启路由功能
编写脚本发布堡垒机
查看脚本的执行结果
9、进行SNAT和DNAT,堡垒机发布测试
测试SNAT功能
测试DNAT功能
到windows真实机器上测试
堡垒机测试文章来源:https://www.toymoban.com/news/detail-830827.html
文章来源地址https://www.toymoban.com/news/detail-830827.html
到了这里,关于基于lvs+keepalived+nginx的web高性能集群项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!