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

155 阅读3分钟

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

1 接入问题引入

1.1 问题引入

经典问题:从输入网站域名到网页加载经历了哪些过程?

在client端可以分为四个过程

image.png

1.2 字节接入框架

报文的介入周期大概有十步

image.png

2 企业接入

2.1使用域名系统

2.1.1 Host管理

通过host主机表的方式来管理Host到ip的映射

该方式的问题:

  • 随着文件大小增加,统一分发引起较大的网络流量和cpu负载
  • 无法保证主机名称的唯一性,名称冲突导致服务故障
  • 分发靠人工上传,时效性太差

2.1.2 使用域名系统

使用域名系统替换hosts文件是工业界比较常见的做法

image.png

image.png

2.1.3 域名购买与配置迁移

域名购买:阿里云,腾讯云等平台购买域名

域名备案:在购买域名的厂商出进行域名备案(未经备案的域名无法DNS解析)

如果服务器在香港或者海外,购买域名是不需要备案的

配置迁移:

image.png

2.1.4 开放外部用户访问

方案:租赁一个外网ip,将ip绑定到一台物理机上,并发布公网route,域名解析到该ip

2.2 自建DNS服务器

2.2.1 问题背景

内网域名解析也得出公网与获取

外部用户看到内网ip地址,容易被攻击

云厂商权威DNS容易出故障

扩大公司影响力

2.2.2 DNS查询过程

image.png

2.2.3 DNS记录类型

image.png

2.2.4 权威DNS系统架构

常见的DNS:bind, nsd, knot, coredns

以bind为例 image.png

2.2.5 权威DNS系统架构实例 image.png

2.3 接入HTTPS协议

2.3.1问题背景 image.png 以上是使用HTTP明文传输带来的问题

2.3.2 对称加密和非对称加密

对称加密:一份密钥 image.png

非对称加密:公钥和私钥 image.png

2.3.3 SSL的通信过程 image.png 加密完成后使用session key进行传输

2.3.4 证书链 image.png

2.3.5 使用https image.png

2.4 接入全站加速

2.4.1问题背景

外网用户访问站点可能出现的问题: image.png

2.4.2 解决方案

image.png

2.4.3 静态加速CDN

当前的访问过程 image.png

通过缓存优化 image.png

通过使用静态加速能解决的问题 image.png

2.4.4 动态加速DCDN

image.png

2.4.5 DCDN原理

image.png

2.4.6 使用全站加速

不同场景下使用的加速类型 image.png

使用全站加速后的模型示例 image.png

2.5 4层负载均衡

2.5.1 问题背景

image.png

2.5.2 什么是4层负载均衡

image.png

2.5.3 常见的调度算法原理

image.png

2.5.4 常见的实现方式FULLNAT

image.png

2.5.5 4层负载均衡特点

image.png

2.5.6 使用4层负载均衡

image.png

2.6 7层负载均衡

2.6.1 问题背景

image.png

2.6.2 Nginx

Nginx的特点: image.png nginx官方文档:nginx.org/en/docs/

2.6.3 Nginx和Apache性能对比

image.png

Nginx完爆Apache

2.6.4 Nginx反向代理示意图

image.png

2.6.5 Nginx内部架构

image.png

2.6.6 事件驱动模型

image.png

2.6.7 异步非阻塞

image.png

2.6.8 Nginx简单优化

image.png

2.6.9 提升网络效率

image.png

2.6.10 使用7层负载均衡

image.png

3 动手实践

3.1 DNS服务器搭建

image.png

3.2 四层负载均衡实验

image.png

3.5 将本地服务开放外网访问

Ngrok 网址:dashboard.ngrok.com/get-started…