大型网站技术架构核心原理与案例分析
此为《大型网站技术架构核心原理与案例分析》的记录
概述大型网站架构演化特点
高并发、大流量
高可用
海量数据
用户分布广泛、网络情况复杂
安全环境恶劣
需求快速变更、发布频繁
渐进式发展
历程
单体服务器
前后端分离、应用服务和数据服务分离
加入缓存和分布式缓存服务器
使用服务器集群改善并发处理能力
数据库读写分离
使用反向代理和CDN加速网站响应
使用分布式文件系统和分布式数据库系统
使用noSQL和搜索引擎
业务拆分
分布式服务
价值观
大型网站架构技术的核心价值随网站所需灵活应对
驱动大型网站技术发展的主要力量是网站的业务发展
误区
一味追随大公司的解决方案
为技术而技术
企图用技术解决所有问题
大型网站架构模式
分层,基本分为应用层、服务层、数据层,各层必须合理规划层次边界和接口,严格遵循分层架构的约束,禁止跨层调用和逆向调用;
分割,将不同功能按照高内聚低耦合模块单元进行分割,提高并发处理能力和功能扩展能力;
分布式
分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
集群,独立部署的服务器集群化,通过负载均衡设备共同对外提供服务
缓存,使用缓存的 ...
定时删除Wazuh日志索引
前情生产和办公环境部署的Wazuh系统,因为对接的大量的Agent,每日的数据量在1.2GB左右。为减少实际运行成本并根据实际使用情况,原始日志导入一份到日志服务器外,Wazuh的安全日志只保留一个自然月。
脚本
使用Shell脚本来实现定时删除Wazuh的ElasticSearch索引的功能:
#!/bin/bash#本脚本用于按月份清理ES存储数据#获取本月份与索引中的日期进行比较,本月份前的索引数据将被删除。#删除前要确认ES_URL=http://127.0.0.1:9200NOW_Year=`date +%Y` NOW_Mon=`date +%m`ALLLINES=`/usr/bin/curl -s -XGET $ES_URL/_cat/indices?v| grep wazuh-alerts-4.x-*` echoecho "THIS IS WHAT SHOULD BE DELETED FOR ES:"echo echo "${ALLLINES}" | while read linedo # echo $ ...
使用PowerShell脚本管理Hyper-V宿主机上的虚机网卡访问ACL规则
使用PowerShell脚本管理Hyper-V宿主机上的虚机网卡访问ACL规则前情
标题也太绕了
The Add-VMNetworkAdapterExtendedAcl cmdlet creates an extended access control list (ACL) for a virtual network adapter. The ACL allows or denies access to a virtual machine network adapter for network packets based on source IP address, destination IP address, protocol, source port, and destination port.
官方文档
其实在单一Hyper-V宿主机上实现对其上运行的VM网络访问限制,主要是对非集群化部署有用,一旦涉及群集部署或者动态迁移,这个功能就没用了。这些规则是写到宿主机里面的,不会跟随VM而迁移。不过,对于边缘部署或者固定节点部署的VM还是有用的。
脚本实现# 使用PowerShell ...
自己动手构建简易广播系统
综合概述XXX电视直播系统是用于XXX北京研发中心的广播和直播相结合的便宜视频推送系统,使用到了办公环境服务器、监控用电视大屏和监控用主机盒子。
组织架构逻辑拓扑整体系统由开源直播系统SRS和开源视频播放器VLC构成,其逻辑拓扑如下:
物理组件
一个SRS服务器:VLNX101071(172.31.101.71)
十三个视频接收端:172.29.153.165~177
推流服务:使用安装OBS工具的公共笔记本电脑
构建软件视频网关安装# 系统准备yum makecacheyum update -yyum install -y git make autoconf m4 gcccd /opt# 从GITHUB拉取SRSgit clone -b 4.0release https://gitee.com/ossrs/srs.git# 编译系统cd srs/trunk./configuremake# 安装系统make installln -sf /usr/local/srs/etc/init.d/srs /etc/init.d/srscp -f /usr/local/srs/usr/lib/s ...
远程搜集主机网卡信息
远程搜集主机网卡信息开启功能客户端默认情况下,在Windows 10或者11 首次执行powershell脚本会提示”系统禁止脚本运行“的错误。这是因为M$为了安全,把powershell的脚本执行策略设定为有数字证书的才允许执行。因此,需要执行脚本的方法一个是使用合法的数字证书对脚本进行签名:
# 获取合法的PFX证书(IIS版本SSL证书)# 一般情况下都会为证书设置密码,所以这一步需要输入密码进行验证$cert = Get-PfxCertificate -FilePath "test.pfx"# 然后为 demo.ps1 脚本文件签名:Set-AuthenticodeSignature -FilePath "demo.ps1" ` -Certificate $cert -IncludeChain "All" ` -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
或者我们干脆取消这一限制:
# 设置执 ...
修复VMDK磁盘
因为断电或者程序被手动中止,VmwareWorkstation中容易出现“磁盘需要修复”的提示,但在GUI管理界面上是找不到修复功能路径的。这个常用的需求是需要到命令行或者powershell中,调用相关程序来完成磁盘文件的修复。
PS C:\Users\root> cd 'C:\Program Files (x86)\VMware\VMware Workstation\'PS C:\Program Files (x86)\VMware\VMware Workstation> .\vmware-vdiskmanager.exe -R D:\VirtualMachines\Knode1\CentOS-cl1.vmdkThe virtual disk, 'D:\VirtualMachines\Knode1\CentOS-cl1.vmdk', was corrupted and has been successfully repaired.
在Linux主机上进行vmdk文件的修复也是调用相关的命令行程序进行
/usr/bin/vmwar ...
文件存在但IIS报404故障的解决
文件存在但IIS报404故障的解决起因公司内建有SMB的网络共享盘,同时为方便MacOS用户,也基于同样的文件夹位置,建立的共享文件的HTTP站点。这个文件夹中有很多的打印机和扫描仪的驱动文件。由于原先使用打印服务器的模式,所以客户端无需单独安装驱动。后来,有了直连打印机的需求,就要上传MacOS的打印机驱动。在上传DMG格式的驱动之后,SMB共享可以正常下载,但WEB共享发现无法下载,点击文件回显404.
解决在IIS服务器中添加对.dmg文件的描述。
打开IIS控制台
添加DMG文件的描述信息
原因MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理URL,因此 We b服务器在响应头中添加正确的 MIME 类型非常重要。如果配置不正确,浏览器可能会无法解析文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。MIME 的组成结构非常简单 ...
macOS的部署、重命名与加域
缘起公司现有一堆14年末的Mac mini主机需要清理、更换SSD、系统升级和资产归纳。因为是库存主机且数据已经可以清空的情况下,对这些老家伙进行格式化重装和重命名主机并加入现有AD域。
部署制作USB启动器
下载 balenaEtcher 工具,来刻录USB安装镜像(需科学上网才能正常下载)
下载可引导ISO镜像,我们使用最新的12.3.1
系统安装
开机部署( 开机按 alt 键,进入引导界面)
打开系统工具,点击“Disk Utility”
清除磁盘,并新建磁盘
返回系统工具,点击“Install macOS”,开始安装
更名原有主机配置根据用户名创建主机名,为方便后续资产管理,现需要变更主机名。
打开系统偏好设置
选择 “共享” ,并点击“编辑”
勾选“使用动态全局主机名”
修改默认“电脑名称”
加域
使用管理员权限打开“用户与群组”
点击“登录选项”,并点击锁按钮
使用管理员权限解锁按钮
点击下方“网络账户服务器:加入”
输入可加域管理员账号、密码、加域主机名(默认小写)
输入本地管理员密码确认变更
MacMini 主机更换SSD
部门库存里面有几台硬盘为1TB机械盘的2014年版本Mac Mini。为了资源利用,现将这些主机的硬盘更换为拆机的256GB SSD磁盘。
主要操作流程如下:
拆除主机外壳( 要注意wifi的连接线)
拆除主机风扇(注意使用镊子或者小的一字螺丝刀把风扇电源、硬盘数据线、主板电源小心的拆掉,这个接口很脆)
从机壳中拉出主板(有两颗固定长螺丝需要拆除)
拆除主机电源(拔掉电源接口下方的金属销,然后将电源接口向主板位置方向旋转90度即可拉出电源);
拆除主机硬盘
更换硬盘(硬盘位使用普通十字螺丝固定,接口有贴纸,贴纸很容易失去粘性,可小心贴到塑料表面,不要沾染指纹或灰尘)
最后依次还原主机