- 前言
- 问题
- 代理是什么?
- 一般怎么做反向代理,负载均衡?
- 什么是四层\七层代理?
- 上面有四层,七层,那有没有二层,三层呢?
- 参考文献
前言
最近在做项目的时候,使用到了 WebSocket 方式与后端交互,在本地与测试环境尝试了采用了 nginx 对 ws 请求的拦截代理,是可行的。
但在上线的时候,nginx 却未能拦截下来进行代理,了解后,原来是运维在线上进行了一个七层反向代理,因为线上对外 IP 并不是真实服务器地址,并且做了多级的负载均衡等等,导致了内部转发服务器的 nginx 未能拦截 ws 请求,在此做了一个小记录~
问题
- 代理是什么?
- 反向代理是什么?
- 四层和七层代表的是什么?
- 什么是四层反向代理?
- 什么是七层反向代理?
代理是什么?
- 场景:访问用户通过proxy请求被访问的真实服务器
- 路径:用户 -> proxy -> real-server
[proxy] 代表 [访问用户],此时 proxy 是代理。
例如:
在家访问 xx 网站,不希望 xx 网站 trace 到我们的真实 ip,于是就找一个 proxy,通过 proxy 来访问,此时 proxy 代表用户,网站以为 proxy 的 ip 就是用户的 ip。 反向代理是什么?
[proxy] 代表 [被访问的服务器],此时 proxy 是反向代理。
例如:
web-server 希望对用户屏蔽高可用、屏蔽 web-server 扩展、web-server 内网 ip 等细节,于是就找了一个 proxy 隔在中间,此时 proxy 代表 web-server 集群,用户以为 proxy 的 ip 就是被访问 web-server 的 ip(web-server 是集群,具体访问了哪个 web-server,用户不知道),由于 web-server 集群有多台,此时反向代理服务器要具备负载均衡的功能。
一般怎么做反向代理,负载均衡?
做反向代理可以有:nginx/apache,lvs,F5
什么是四层\七层代理?
这个是来源于 OSI 七层模型
大学“计算机网络”课程,之前都是用这个七层模型,新版教程用TCP/IP五层模型,这两个模型如下:
OSI七层模型
![四层和七层反向代理](https://img.qiyuandi.com/images/5/sbhrbbbpwmx5vkyt.jpg)
TCP/IP五层模型
每层之间的具象:
可以看到,四层是指传输层,七层是指应用层。
更具体的,对应到nginx反向代理hash:
- 四层:根据 用户 ip + port 来做hash
- 七层:根据 http 协议 中的某些属性来做hash
上面有四层,七层,那有没有二层,三层呢?
答:是有的
- 二层:根据数据链路层 MAC 地址 完成数据交换
- 三层:根据网络层 IP 地址 完成数据交换
参考文献
- 一分钟了解四层/七层反向代理
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!