将我的服务开放给用户| 青训营笔记

99 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第4篇笔记。

1.1 问题引入 浏览器输入网站域名,到网页加载出来,都经历了哪些过程?

DNS握手 TCP握手 TLS

如果我们自己来做 应该如何搭建这样的服务器?

image.png

最开始 example公司的通过修改host文件来实现ip和域名的映射。

image.png

随着example公司业务规模和员工数量的增长,使用该方式面临着诸多问题, 流量和负载: 用户规模指数级增长,文件大小越来越大,统一分发引起较大的网络流量和CPU负载。 名称冲突:无法保证主机名称的唯一性,同名主机添加容易导致服务故障 时效性: 分发靠人工上传,时效性太差。

2.1.2 使用域名系统

使用域名系统替换hosts文件

image.png 类似于在根的基础上又做了一层分布式管理

假设是example公司,他们在运营商买了域名。

买了域名就能随便用吗? 不能 需要备案

修改配置: 清空/etc/hosts 配置/etc/resolv.conf中nameservers为公共DNS迁移原配置,通过控制台添加解析记录即可。

2.2.1 问题背景 内网域名的解析也得出公网去获取,效率低下。 外部用户能看到内网IP地址,不安全 容易被攻击。 云厂商权威DNS容易出故障,影响用户体验 持续扩大公司的品牌技术影响力吗,使用自己的DNS系统。

站在企业角度思考,我们需要的是权威DNS和localDNS(可选)

image.png

2.3 接入HTTPS协议 2.3.1 问题背景 页面出现白页/出现某些奇怪的东西 返回了403的页面 搜索不了东西 搜索问题带了小尾巴,页面总要闪烁几次 页面弹窗广告

https相比http多了哪些内容? 2.3.2 对称加密和非对称加密 非对称加密:相当于只有你有这一把钥匙和一把锁,你可以把钥匙留到自己手里,把锁给任何人,其他人把重要的东西用这个锁锁起来,然后你去拿钥匙打开就行了,其他人没有钥匙 打不开这个锁。 根证书一定是可信的,存在于用户的机器或者操作系统里。 用上级CA公钥来解密摘要信息得到数字签名,如果可以正常解密,就证明是对的。

2.4 全站加速 2.4.1 问题背景 外网用户访问站点,不一定是一帆风顺的。 源站容量低,可以承载的并发请求数低,容易被打垮。 报文经过的网络设备越多,出问题的概率越大,丢包、劫持、mtu问题 自主选路网络链路长,时延高。极大的流失了大部分的用户群体,NPS留存率数据不乐观。

静态加速CDN: 缓存加速 把服务器上的静态内容加载到CDN服务器上,这样无需访问源站,直接访问CDN服务器就可以拿到资源了

减少了源站的压力,也加快了获取的速度(会选择离用户近的CDN服务器) 第一公里:

服务器尽量离用户近一点,离得在一公里之内?(反正就是个比喻。。) 边缘节点:靠近用户 数量多 容量小

汇聚节点:

核心机房: 企业内部 规模容量大 但是数量少

越往中心 算力越大 容量越大

如果我们要建立服务器,西部地区网络比较差,所以要建在闹市区。

首次建立连接后,后续请求不需要考虑建立连接的时间成本 1、动态加速

2、静态加速

3、静态加速+动态加速

html css这种是静态的