输入一个网址经历了哪些
-
域名解析 (DNS解析)
- 将用户输入的域名(如
www.xxx.com)转换为对应的IP地址。 - 解析过程可能涉及多个DNS服务器:递归解析器、本地DNS缓存、权威DNS服务器。
- DNS解析返回的结果有时会被浏览器缓存。
- 将用户输入的域名(如
-
TCP连接建立
-
浏览器与服务器通过三次握手建立TCP连接。
-
三次握手过程:
- 客户端发送SYN包(请求建立连接)。
- 服务器返回SYN-ACK包(确认连接请求并响应)。
- 客户端发送ACK包(确认响应)。
-
-
SSL/TLS握手(如访问HTTPS网站)
- 客户端和服务器协商加密协议版本和加密算法。
- 服务器向客户端提供SSL证书。
- 双方生成共享密钥用于后续通信的加密。
-
HTTP请求
- 浏览器向服务器发送HTTP请求(如GET、POST等)。
- 请求中包括路径、HTTP头信息和其他数据(如Cookie、表单数据)。
-
服务器响应
- 服务器处理请求并返回HTTP响应(如HTML、JSON、图片等)。
- 浏览器渲染页面或处理数据。
网站加速技术
1. 静态加速 (CDN)
-
原理
- 将网站的静态资源(如图片、CSS、JS等)缓存到CDN节点。
- 用户访问时从距离最近的节点获取资源,而非直接访问源站。
-
优点
- 减少延迟,提升加载速度。
- 减轻源站服务器压力。
2. 动态加速 (DCDN)
-
原理
- 在CDN基础上优化动态内容的传输。
- 建立边缘节点缓存部分动态数据或加速其传递。
-
特点
- 动态加速对实时性要求较高,通常使用协议优化和传输优化。
四层负载均衡
什么是四层负载均衡?
- 通过IP和端口(OSI模型第4层:传输层)分发网络流量到多个后端服务器。
- 基于TCP或UDP协议,不关注应用层内容。
有什么作用?
- 提高系统的吞吐量和可用性。
- 分担服务器压力,避免单点故障。
如何做到?
-
使用硬件设备(如F5负载均衡器)或软件(如LVS、HAProxy)。
-
关键技术
- 数据包转发(通过NAT或直接路由)。
- 高性能网络框架(如DPDK)。
DPDK技术
- Data Plane Development Kit,用户态高性能网络框架。
- 减少内核和用户态的上下文切换,提高网络IO效率。
- 广泛用于四层负载均衡和高性能网络设备。
四层负载均衡只能监听一个端口?
- 四层负载均衡通常监听多个端口(如80、443),具体取决于配置。
七层负载均衡
什么是七层负载均衡?
- 基于应用层协议(如HTTP/HTTPS)分发流量。
- 能分析HTTP头、URL路径等内容。
功能
-
SSL卸载
- 在负载均衡器上处理SSL加密和解密,减少后端服务器压力。
-
请求重定向
- 例如,将
abc.com重定向到www.abc.com。
- 例如,将
-
内容路由
- 根据请求内容将流量分发到不同的后端服务器。
- 如将静态内容的请求分配到专门的静态资源服务器。
使用Nginx配置七层负载均衡
示例配置:
http {
upstream backend {
#轮询实现负载均衡
server 192.168.1.100 weight=3;#权重是3
server 192.168.1.101;#默认权重为1
}
server {
listen 80;
server_name www.xxxx.com;
#可根据路径设置不同的转发代理
location / {
proxy_pass http://backend;
}
location /static/{
root /www/static;#直接从本地读取静态文件
}
}
}
完整的处理流程
- 客户端发送HTTP请求到
www.xxx.com的80端口。 - Nginx 匹配到
server_name www.xxx.com的虚拟主机。 - 匹配到
location /,将请求转发到upstream backend定义的后端服务器组。 - 后端服务器返回响应,Nginx 将其转发回客户端。
什么是Nginx?
定义
- 高性能HTTP和反向代理服务器,同时支持IMAP/POP3协议。
- 常用于负载均衡、静态资源服务、代理服务等。
特点和优点
- 高并发:支持大量并发连接,适合高流量场景。
- 轻量级:资源占用小,配置简单。
- 模块化设计:功能可以扩展。
- 稳定性:高效的内存使用和故障恢复能力。