代理服务器与CDN
总览
代理服务器,正向代理与反向代理,CDN、VPN
# 代理服务器(Proxy Server)
- 本身不产生内容
- 处于中间位置转发上下游的请求和响应
# 正向代理与反向代理
正向代理:代理的对象是客户端
- 隐藏客户端身份
- 抓包工具原理(在客户端启动了正向代理,wireshark是拦截网卡上流过的数据)
- 绕过防火墙
- Internet访问控制
- 数据过滤
反向代理: 代理的对象是服务器
- 隐藏服务器身份
- 安全防护
- 负载均衡
# 代理服务器相关头部字段
Via:追加经过的每一台代理服务器的主机名(或域名)
X-Forwarded-For:追加请求方的IP
X-Real-IP: 客户端真实IP地址
# CDN
内容分发网络 Content Delivery Network或Content Distribution Network
CDN是只对网站的某一个具体的域名加速。如果同一个网站有多个域名,则访客访问加入CDN的域名获得加速效果,访问未加入CDN的域名,或者直接访问IP地址,则无法获得CDN效果。
- 利用最靠近每位用户的服务器将资源文件传递给客户
- CDN运行商在全国全球各大枢纽城市都建立了机房,内容所有者向CDN运行商付费然后由CDN转发给用户
- 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
- CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
- 用户向CDN的全局负载均衡设备发起内容URL访问请求。
- CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
- 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
- 全局负载均衡设备把服务器的IP地址返回给用户。
- 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
# VPN
virtual private network 虚拟私人网络,它可以在公共网络上建立专用网络进行加密通讯
何为VPN
表面上,VPN和代理服务器是很接近的。在VPN服务下,你传输的信息会先经过VPN服务器,然后再抵达目的地,反过来的接收过程也是一样。而VPN和代理的主要区别就在于你向服务器发送数据的这个环节。 使用VPN,你必须先安装VPN软件。在开启VPN软件后,软件的主要职责就是加密你的数据并传递给VPN服务器,这样你传输的数据对截获者来说就是不可读的。这个技术叫做“隧道”
使用VPN的好处
VPN可以隐蔽你在互联网上的行为。反过来说,代理服务器并不难做到这一点,至少在你和代理服务器交换数据的这个阶段是做不到的,任何有能力的人(包括黑客和你的网络服务商)都能看到你在传输什么。而VPN则从你的主机建立了隧道,包括网络服务商在内的任何人都无法“看到”你传输的东西。 隐蔽意味着安全,如今整个互联网都在倡导各式各样的加密通讯,道理就在这里。很多不法分子会通过截取用户发出的数据包而窃取用户信息,但通过VPN你就不用担心这个问题了,对截获者来说你发出的加密数据包几乎等于垃圾数据。
VPN的不足
但不幸的是,VPN通常不便宜。理论上,除非你有必要将你的网络操作进行加密,否则购买VPN是没有必要的。相比之下,付费代理要便宜得多。 不仅如此,由于加密隧道是你的设备建立的,因此所有的离岸数据都是在你的设备上完成加密的。这可能会不同程度上拖慢你的设备速度,从而影响整个浏览体验。
# 参考
代理(Proxy)和VPN的区别 - 知乎 (zhihu.com) (opens new window)
什么是CDN?它解决了什么难题?5分钟让你明明白白!-腾讯云开发者社区-腾讯云 (tencent.com) (opens new window)