分享好友 最新动态首页 最新动态分类 切换频道
中小型企业网络部署搭建项目(搭建WordPress)
2024-12-26 12:25

【项目名称】
搭建中小型企业网站平台
【项目说明】

设计一个中小型企业网站平台架构,可以满足公司日常一天10-30万PV访问量。项目中要包括安全,备份,监控,shell脚本自动化管理等内容。
【项目考核技能点】

  1. 画好架构图, 不限制用什么工具画图、visio、亿图、xmind、在线画图processon等

  2. LAMP或LNMP架构

  3. 在Web架构上部署网站模版。如:discuz论坛或ecshop商城或wordpress博客等。

  4. 整个方案要包括:安全、监控、备份等相关内容。

  5. 给web平台,起一个名字。比如:某宝,某东。

PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv。

每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间。

计算模型
每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒20%)) / 服务器数量 。其中关键的参数是80%、20%。

每天30w PV 在单台机器上

(300000 * 0.8)/ (86400 * 0.2= 13.888(QPS

也就是单台机器需要满足 14(QPS

Apache的最大连接数,默认为256个。可以满足需求

ulimit 命令是 Linux 系统的内建功能,它具有一套参数集,用于控制 shell 进程及其所创进程的资源使用限制。它主要用于设置用户和系统的资源限制,如打开文件的最大数量、内存使用限制等。

默认的ulimit open files(用户可以打开文件的最大数目)默认为1024 。也可满足需求。

留足余量

但实际情况并不会这么均匀的分布,会有高峰有低谷。为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。

14个请求/秒 * 2倍=28个请求/秒

14个请求/秒 * 3倍=42个请求/秒

结论

如果服务器一秒能处理42个请求/秒,就可以应对平均30万PV/每天。

规划表

序号用途操作系统IP主机名1apache服务器rocky-8.8192.168.137.31zhyj12mysql-masterrocky-8.8192.168.137.32zhyj23mysql-slaverocky-8.8192.168.137.33zhyj34数据备份(web,mysql)rocky-8.8192.168.137.34zhyj45zabbix6监控所有主机rocky-8.8192.168.137.35zhyj56ansible集中管理rocky-8.8192.168.137.36zhyj6

编辑网卡配置文件

 
 

重启网卡

 
 
 

ansible是是一个"配置管理工具",它是一个"自动化运维工具",是运维人员的瑞士军刀,可以帮助我们完成一些批量工作或者重复性工作。

ansible是在epel扩展源中

**配置管理员主机(192.168.137.36)epel源 **

 
 

使用dnf安装ansible

 

查看ansible的版本

 

定义主机清单

 
 

生成ssh公钥和私钥,将生成的公钥拷贝到其他机器,免密登录

 
 

其他机器同理

使用ping命令检测是否成功连通

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

为192.168.137.31主机安装php环境

 

为192.168.137.32 192.168.137.33安装mysql

 

将相应服务启动并设置开机自启动

 

查看服务运行状态

数据库安好后,我们需要运行安全初始化命令提高mysql的安全性。 这里实验环境我的mysql密码就设置为123456了

运行mysql_secure_installation会执行几个设置(192.168.137.32机器
a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效

 

192.168.137.33机器同理

rz上传discuz网站压缩包

解压到当前目录下

 

把upload文件夹里的文件都移动到 /var/www/html/ 文件夹中

 

给 /var/www 目录及其子目录赋予权限

 

重启httpd服务

 

浏览器中输入ip地址进行安装

这里选择第二个选项

填写好相关信息

这里我使用的是192.168.32主机为主数据库,192.168.137.33主机为从数据库 稍后将进行配置

安装报错记录

在终端中使用mysql命令没有找到

分析,可能没有安装mysql软件包

使用yum安装msql

还是存在该问题

**经过查询得知 root 用户没有远程连接的权限 **

修改 root 用户的连接权限

 
 

接下来成功安装

进入管理后台

修改网站名称

修改成功

跳转回首页后底部显示网站名称:zhyj-论坛

删除网站安装目录

 
 

rocky8.8 192.168.137.31 httpd

rocky8.8 192.168.137.32 mysql8.0.32—master

rocky8.8 192.168.137.33 mysql8.0.32—slave

停止httpd服务 复制前要保证同步的数据库一致

 
 

可以看到discuz论坛创建的数据库是 ultrax 我们导出ultrax数据库

导出数据库

 
 
 
 

添加18–21行

 

重启mysql

 
 
 

查看状态信息

 
 

查看二进制日志

查看mysql版本 注意:从数据库的版本要大于等于主库版本

 

测试是否可以连接到主数据库

导入数据库文件

 
 

导入成功

 

添加第18行

 

修改后重启mysqld服务

 

配置master的连接参数

 
 

查看状态

mysql的Slave_IO_Running 与主机master的通信正常

mysql的Slave_SQL_Running 从数据库sql进程运行正常

在主服务器上查看状态

 
 
 

State状态

Source has sent all binlog to replica; waiting for more updates

源已将所有binlog发送到副本;正在等待更多更新

默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能,主库把binlog日志发送给从库即结束,并不验证从库是否接收完毕。这意味着当主服务器或从服务器端发生故障时,有可能从服务器没有接收到主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失。

主服务器上的I/O threads 将binlog写入二进制日志中就返回给客户端一个结果,无需等待二进制日志是否成功发送到从库和从库上是否成功完成relay log的写入以及SQL threads从relay log中提取二进制日志写入自己binlog的过程。

登录mysql为主库安装半同步插件

 
 

开启半同步

 
 
 

登录mysql为从库安装半同步插件

 
 

开启半同步

 
 
 
 

主库查看处于半同步模式的从库

 
 
 
 

主从同步的模式默认是多线程,而从库的sql 线程是单线程 。从库的单线程在大数据量的时候会有延迟,将从库的线程改为多线程可以减少延迟问题。

修改 192.168.137.33 从库配置文件

添加以下19-23行

 

重启mysql服务

 
 
 
 
 

master,relaylogrelaylog,worker 信息,会以表形式存储于数据库

192.168.137.32 (zhyj2) 源数据主机 --> 192.168.137.34 (zhyj4) 备份端主机 mysql

192.168.137.31 (zhyj1) 源数据主机 --> 192.168.137.34 (zhyj4) 备份端主机 web

 

使用非系统用户备份数据

在192.168.137.34 (zhyj4) 备份端主机创建配置文件

 
 

在根目录下创建数据备份的文件夹

 

创建提示信息文件和用户密码文件

 

修改权限为600

 

创建配置文件

 

创建service文件,注册rsyncd以服务的模式运行

 
 

启动服务,查看服务日志和端口确认成功启动

 
 

源数据主机192.168.137.32 (zhyj2) 创建密码文件

 

修改密码文件权限600

 

在rsync 命令中使用 password file 指定此文件即可无交互备份

备份数据测试

 
 

rsync数据备份环境部署成功

编写mysql数据备份脚本

 
 

给脚本添加执行权限

 

测试脚本

在备份端机器查看

计划任务在每天凌晨3点执行Mysql数据备份到192.168.137.34

 
 
 

编写web网站数据备份脚本

 
 

数据源主机192.168.137.31 (zhyj1)创建密码文件

 

修改密码文件权限600

 

在rsync 命令中使用 password file 指定此文件即可无交互备份

测试备份脚本

 

在备份端主机查看

计划任务在每天凌晨3点执行web数据备份到192.168.137.34

 
 
 

管理员使用ansible(192.168.137.36)yum模块安装fail2ban

 
 

修改配置文件

5分钟内3次密码验证失败,禁止用户IP访问主机1小时。 配置如下。

 
 
 

使用ansible copy模块拷贝配置文件到所有主机

 
 

启动所有主机的fail2ban服务并设置开机自启动

 
 

使用192.168.137.64进行测试可以看到ip已经被禁止

安装lanmp环境 zabbix依赖php环境

 
 

选择自己的平台

使用ansible为所有主机安装zabbix源

 
 

使用ansible为所有主机清理yum源缓存

 
 

把所有zabbix源地址替换为阿里云地址

 
 
 
 

使用ansible将配置好的zabbix源文件拷贝到所有主机

 
 
 
 
 
 

启动数据库 加入开机自启动

 

登录mysql 设置root密码为123456

 

刷新权限后退出

 

使用 mysql_secure_installation 进行安全初始化配置此处省略 可参考上文

重新登录mysql

 
 
 
 
 
 
 
 
 

编辑配置文件 /etc/zabbix/zabbix_server.conf

 
 

修改php配置文件的时区

 
 
 

启动Zabbix server和agent进程,并为它们设置开机自启

 
 

浏览器访问:http://192.168.137.35/zabbix

密码 zabbix password : 123456

服务器的名字 zabbix server name : server-zabbix-35

完成安装

登录zabbix并修改中文

账号: Admin 密码:zabbix

User setting —> Profile —> Language —> Update 更新即可

**注意:**zabbix 被监控端都需要安装agent客户端

 

35这台机器安装过agent 所以未发生改变 其他机器均被安装

我们需要修改每一台被监控主机的agent配置文件把server地址指向192.168.137.35

 

改117行为 server ip 地址192.168.137.35

主动模式,改171行为 server ip 地址192.168.137.35

改182行为自己的主机名

启动服务

 

其他主机配置同理 此处省略(192.168.137.32 33 34 35 36 )的配置

编辑Apache的主配置文件/etc/httpd/conf/httpd.conf

开启Apache server-status 状态页面

 

加入如下图配置

修改完后重启Apache服务

 

创建监控主机

查看主机的图形数据

图像中存在乱码

上传simkai.ttf到 /usr/share/zabbix/assets/fonts下替换graphfont.ttf 字体

 
 

刷新页面,已解决乱码

创建mysql用户让agent用户使用此用户获取mysql数据

 
 

拷贝监控配置文件模板

 

编辑/etc/my.cnf.d/client.cnf 加入zabbix的用户名密码

 
 

重新启动zabbix客户端

 

添加mysql监控主机

添加成功

同理添加其他主机即可

手工配置繁琐且麻烦,逐个主机添加无疑增加了管理员的工作量。我们只需要设置自动发现服务即可解决手动添加主机问题,简化后期因业务扩大带来的繁琐配置。

创建自动发现规则

填写相应信息 检查system.uname 作为判断条件

创建自动发现动作

添加触发条件

设置触发后的动作

点击添加即可

添加成功

查看 监测—>自动发现 查看是否存在自动发现的主机

确认可发现主机设备

管理员使用192.168.137.36主机 ab命令测试主机192.168.137.31 apache服务性能

安装httpd-tools

 

模拟1000请求每次并发100个测试discuz论坛首页

ab -n 1000 -c 100 http://192.168.137.31/index.php

 
 

可以看到apache每秒请求数为Requests per second: 56.70 [#/sec] (mean) 结果大于我们开始分析的42个请求/秒

最新文章
耐克300亿美元买来的教训:品牌没效?不,是你做品牌的方式失效了
前些天我去上海出差,见了我的好朋友苗庆显老师,苗老师最近金句频出,他说:"自从有了成熟的品牌理论,就很少诞生伟大品牌了"。正好,最近又有另一位好朋友王赛老师发了条消息,他说呼吁了多年将"Marketing"译为"营销"是一个失误,目前学
白板标注器
直播讲课画笔标注工具白板标注器直播讲课工具,占用空间小;网课标注工具,操作简单,界面简洁;线上会议重点标注,用途广泛,开启快速;主播都在用,赶紧下载吧! 51下载站提供白板标注器app官方版下载地址,有需要的用户可免费下载使用!
肠炎和直肠炎的区别是什么
肠炎和直肠炎的区别在于病变部位、病因、症状、治疗方法以及预后情况。1.病变部位肠炎指的是整个肠道出现炎症反应,包括小肠和大肠。而直肠炎仅涉及直肠末端部分。2.病因肠炎可能由病毒、细菌感染或食物不耐受引起,如轮状病毒感染、志贺菌
聊天被诬陷性骚扰犯法吗
一、聊天被诬陷性骚扰犯法吗在交流过程中受到指控涉嫌性骚扰,然而仅凭恶意的指责而缺乏实际行为作为支撑,此种情况并不符合犯罪构成要件。若该项诬告最终导致指控者承受了不当的制裁或名誉受到了实质性的伤害,那么诽谤者则有可能就其恶意
苹果哪款手机拍照效果最好?苹果十大最佳拍照手机排名
苹果当中拍照好的手机很多,苹果十大最佳拍照手机排名为:iPhone SE 2020,iPhone 12 Pro,iPhone 11,iPhone SE 2,iPhone 6S Plus,iPhone 6S,iPhone12 Pro Max,iPhone 12 mini,iphone 12,iPhone 13 mini,这十款苹果手机是目前拍照
联想笔记本电池驱动(联想笔记本进BIOS按什么键)
1. 引起读者的注意在现代社会中,笔记本电脑已经成为人们日常生活不可或缺的工具。随着使用时间的增加,笔记本电池的性能逐渐下降,给用户带来了不便。而联想作为知名的电脑品牌,其笔记本电池驱动更是备受关注。我们如何进入联想笔记本的B
一文全方位掌握“架构原则”:3 总则、4 域细则与 TOGAF 10 原则
架构设计不像数学公式或者物理定律那样有固定的解答。很多时候,它是设计师在各种需求、技术限制和未来规划之间做出的权衡结果,是一种最符合实际情况的“智慧输出”。不过,虽然架构设计充满了不确定性,但一些好的架构原则和思路可以帮助
湖南筱度引领企业SEO新营销浪潮
湖南筱度SEO优化推广服务,专注提升企业网络营销效果,助力企业开启互联网营销新篇章,实现品牌影响力与市场竞争力双提升。随着互联网技术的飞速发展,网络营销已经成为企业获取客户、提高品牌知名度的重要手段,在众多网络营销策略中,SEO
色情链接太多了吧,百度遭媒体质疑|1月21日坏消息榜
关注钛媒体每日、每月整理发布的行业坏消息榜,一榜略尽当日当月最具影响的坏消息。近日,有记者通过电脑页面和手机客户端,分别登录此前报道中涉及的贴吧,看到大多数贴吧已被彻底关停,但名为“苍XX”的贴吧,仍可通过手机客户端间断登录
百度搜索优化这样做,让你的流量蹭蹭暴涨!
对于SEOER来说,百度搜索优化是个老生常谈的话题。做好百度搜索引擎优化,不仅有助于网站在搜索引擎上获得良好的排名,带来的自然曝光和流量也十分可观。无论从品牌传播的角度还是从业务转化的角度,都大有裨益。那么,当网站访客流量遭遇
相关文章
推荐文章
发表评论
0评