目录
项目架构图
项目环境:
centos7.9服务器8台、nginx1.21、keepalived2.1、prometheus、nfs4、ansible、ab压力软件
项目描述:
构建一个基于nginx的负载均衡的web集群,旨在提高 Web 应用的访问速度和可用性,模拟企业的业务环境,达到构建一个高可用的web集群。并通过压力测试及监控服务检验整个集群的性能,不断优化。
项目步骤: 1、准备8台centos7.9服务器,并安装部署ansible服务,服务器之间通过ssh协议生成公私密钥建立免密通道,安装部署nginx与Prometheus
通过 ssh-keygen 命令后,我们即可在~/.sshd文件夹中看到生成的公私密钥,其中id_rsa.pub为公钥,id_rsa为私钥
将公钥复制到需要远程登录服务器的~./ssh/authorized_keys 文件中即可
使用yum install epel-release与yum install ansible 命令安装ansible,编写playbook批量部署nginx
该脚本为一键安装nginx的shell脚本,用脚本提高我们的工作效率
2、在nginx配置文件中配置长连接、并发数和worker的进程数,限制速度以及其他相关配置,并上传网站内容至/html文件夹中
userxxw 指定使用xxw这个用户启动nginx中的worker进程
worker_processes 2 启动两个worker进程,这个数据一般与cpu核心数一致
error_log logs/error.log notice 记录notice级别以上的日志
worker_connections 1024 一个worker进程允许1024个用户访问
将客户端的请求转发至所对应的3个backend服务器中,并设置nginx的监听端口为8080端口
3、使用两台服务器做双vip的负载均衡器,互为主备,使用加权轮询的调度算法
4、部署好三台web服务器,并搭载nfs服务,实现网站数据的一致
在nfs服务器上创建一个文件夹,用于存储 Web 页面的数据,最好是在根目录下,防止其他服务器没有权限读写,并在web服务器上都安装好nfs,将nfs的页面挂载至nginx的html文件夹下,实现网页数据的一致
exportfs -rv 相当于重启nfs服务,让修改的/etc/exports文件生效
nfs系统必须要开机才能挂载上
5、使用ab测试软件对客户机进行压力测试
使用 ab命令对页面进行测试,其中 -c 为同时并发请求数,-n 为总共的请求次数
在我们查看性能指标时,主要查看两个值:Requests per second 表示每秒请求数,Time per request 表示每个请求的平均处理时间
6、在监控服务器上安装prometheus软件安装目录没有写权限怎么解决,对其他服务器进行性能监控
编辑prometheus的配置文件,让prometheus监控web服务器
因为Prometheus的启动与关闭较为复杂,小编索性将其弄成一个服务,在 /etc/systemd/system 目录下创建一个新文件prometheus.service安装目录没有写权限怎么解决,并将以下内容添加到该文件中:
prometheus可使用service命令进行启动与关闭
打开prometheus所监听的端口即可查看到该图片
我们可以通过下载grafana软件对服务器性能指标参数作图,更好的进行监控
项目心得:
1、在使用高可用时,发现没有效果,后来得知是因为粗心写错虚拟路由id,出现了脑裂现象,后来将其解决,锻炼了我的细心能力与排错能力
2、慢慢理解了集群的概念,从一台到多台
3、学会使用制图工具提前规划好整个集群的架构,对今后学习大规模的集群打下了基础
4、深知监控在工作中的重要性,可以提前看到问题,做好预警
5、学会了如何使用负载均衡,提高系统的性能和稳定性
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论