第1章 中小规模网站架构组成
架构名词介绍
1.什么是项目, 类似于手机的App,每一个app都可以算做一个项目。
2.什么是架构, 维护一个项目使用的一组服务器。
3.什么是集群, 为解决某个特定问题将多台计算机组合起来形成的单个系统。
4.什么是高可用, 当一台服务器不可用,另一台服务器自动接管,保证业务不down机。
5.什么是负载均衡,将用户的请求,分摊到多个操作单元上执行,保证服务器的稳定性。
架构访问流程-用户视角
1.用户通过浏览器输入oldboyedu.com->回车
2.浏览器会发生一次跳转,分析URL->然后进行DNS解析->获取真实的公网IP地址
3.用户通过tcp的三次握手发起连接->真实的公网IP
4.连接会通过公网->路由器->交换机->抵达前端的硬件防火墙
5.防火墙根据自身访问规则,进行匹配->如果恶意的连接则拒绝->如果是正常的连接则放行
6.防火墙会将连接转发给负载均衡器->查看用户请求的内容->根据内容进行任务下发->下发给web服务器
7.web服务接收请求后会根据请求进行判断 如果是请求图片或者附件->查找存储服务器存储的静态资源 如果请求的网站上的内容->缓存服务器->如果缓存服务器没有->数据库 数据库查询完数据之后会返回数据给web服务器->同时也会返回一份给缓存服务器
8.数据库返回内容->web服务器->负载均衡->用户
架构访问流程-运维视角
1.用户通过公网连接(隧道)VPN服务器,这样方便管理内部主机,
2.自动化配置管理,节省人力成本,便于后期维护。统一环境,标准化
3.自动化监控服务,监控系统的运行状态,事前预警,事后追溯。
总结: 一个项目涵盖了一套架构,一套架构又涵盖了不同的角色(高可用、负载均衡、web集群) 五层架构模型--> 负载均衡 web服务 存储服务 缓存服务 数据库服务(通过tcp连接)
1) 顾客--用户
访问网站的人员
2) 保安--防火墙 (firewalld)
进行访问策略控制
3) 迎宾--负载均衡服务器 (Nginx)
对用户的访问请求进行调度处理
4) 服务员---web服务器 (nginx)
处理用户的请求
5) 厨师---数据库服务器 (MySQL)
存储的字符数据 (耳机 500 索尼 黑色 北京地址 订单时间2019-05-05 13:00)
6) 厨师---存储服务器 (nfs)
存储图片 音频 视频 附件等数据信息
7) 厨师---备份服务器 (rsync+crond-定时备份 rsync+sersync--实时备份)
存储网站所有服务器的重要数据
8) 厨师---缓存服务器 (memcache redis mongodb)
a 将数据信息存储到内存中
b 减缓服务器的压力
9) 经理---批量管理服务器 (ansible)
批量管理多台服务器主机
部署网站架构:
1) 需要解决网站架构单点问题
迎宾: 高可用服务---keepalived
数据库: 高可用服务---mha
存储服务: 高可用服务---keepalived实现
高可用服务---分布式存储
备份服务:
面试题: 公司的数据是如何备份
2) 内部员工如何远程访问架构
部署搭建VPN服务器 PPTP vpn
https://blog.oldboyedu.com/pptp-l2tp/
3) 内部员工操作管理架构服务器要进行审计
跳板机服务器 jumpserver
https://jumpserver.readthedocs.io/zh/docs/setup_by_centos.html
4) 架构中服务器出现问题需要进行提前报警告知
部署监控服务器 zabbix
第2章 综合架构规划
主机名称和IP地址规划
03. 优化配置模板主机
1) 进行网络配置
a 添加网卡
b 配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1
c 确认网络配置
2) 系统优化过程
1. 模板机优化配置---hosts文件配置
第3章 优化配置模板主机
1. 进行网络配置
- 添加网卡
- 配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth1 - 确认网络配置
2. hosts文件配置
3. 更改yum源
4. 关闭selinux
5. 关闭iptables
6. 提权oldboy可以sudo (可选配置)
7. 英文字符集
8. 时间同步
yum install -y ntpdate
echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l
9. 加大文件描述
yum install -y lsof
lsof -i:22
#加大文件描述
echo '* - nofile 65536' >>/etc/security/limits.conf
tail -1 /etc/security/limits.conf
说明:
一个服务程序运行起来,会打开相应的文件
crond定时任务服务---systemctl start crond --- 打开相应文件
/var/spool/cron/root --- 加载打开配置文件
/var/log/cron --- 加载打开日志文件
10. 安装其他小软件
11. ssh连接速度慢优化
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl restart sshd
12. 修改主机名
修改主机名称
hostnamectl set-hostname backup
修改主机地址