0

    01_项目-基于nginx负载均衡的web集群项目

    2023.06.02 | admin | 233次围观

    目录

    项目架构图

    项目环境:

    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、学会了如何使用负载均衡,提高系统的性能和稳定性

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论