day06 将我的服务开放给用户
1 网络接入问题的引入
浏览器从输入域名到网页加载,经历了那些过程?
JavaScript学习笔记:从地址栏输入网址到页面呈现的完整步骤 - 掘金 (juejin.cn)
1)URL解析「识别URL」
2) 检查缓存
3) DNS解析
4) 基于TCP的三次握手,构建客户端和服务器端的连接通道。
5) 基于HTTP/HTTPS等传输协议,实现客户端和服务器之间的信息通信
6) 服务器处理请求
7) TCP四次挥手「把建立好的网络通道释放掉」
8) 客户端渲染「呈现出页面和效果」
2 企业接入
2.1 域名系统
使用域名系统替换host文件
如何建设外部网站:租赁外网IP--将网址解析到外网IP--将IP绑定到一台物理机上,并发布公网route,用于外部访问。
2.2 自建DNS服务器
内网域名解析要去公网获取,效率低;外部用户看到内网地址,容易被攻击;权威DNS容易出故障
——搭建自己公司的DNS
常见的开源DNS:bind、nsd、knot、coredns
2.3 接入http协议
常见的加密算法:
1)对称加密:一份秘钥
2)非对称加密:公钥+私钥
2.3.3 SSL的通信过程
“SSL不同于SSH,它是安全套接层(Secure Sockets Layer),是一种安全协议,是Netscape公司在推出Web浏览器首版时一起提出的。当浏览器访问以https://开头的URL时,浏览器通过SSL连接使用HTTP。SSL协议会在数据传输之前对数据进行加密再进行网络传输,保证了用户数据在传输链路上的安全。“
作者:月光也会跟着我 链接:juejin.cn/post/699842… 来源:稀土掘金
2.3.4 证书链
来源:网络安全科普:奇妙的 SSL/TLS 证书(基础篇) - 知乎 (zhihu.com)
2.4 接入全站加速
源站容量问题:扩容;静态加速缓存
网络传输问题:动态加速DCDN
全站加速 静态加速+动态加速
2.5 4层负载均衡
怎样尽可能充分利用和管理有限的公网IP资源?
什么是4层负载均衡:基于IP+端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡地落到后端服务器上
三个主要功能:1)解耦vip和rs;2)NAT;3)防攻击:syn proxy
常见调度算法原理:
1)RR轮询:平均分配
2)加权RR轮询
3)最小连接
4)五元组hash:根据5个属性对静态分配的服务器做散列取
缺点:某个服务器故障,所有连接重新计算,影响整个hash环
一致性hash:只影响故障服务器的连接session
常见实现方式 FULLNAT
2.6 7层负载均衡
Nginx:Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。