当前位置: 首页 > news >正文

对七层代理、四层代理、正向代理、反向代理的认识

一、理解nginx服务代理

Nginx代理有正向和反向代理两种类型,可以基于osi七层模型中的第四层(传输层)和第七层(应用层)进行代理

注:
nginx 一般支持的是7层代理,支持四层代理一般使用 lvs 或者haproxy,但从nginx 从1.9.0 版本开始支持四层代理,但做四层代理时源码编译需要添加 --with-stream模块,这里的–with-stream 是添加四层代理模块

正向代理代理的对象是客户端,反向代理的对象是服务端,在日常使用中,反向代理web服务器这种方式使用得比较多。
Nginx采用C语言进行编写,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名,其特点是占有内存少,并发能力强。
模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,
则这项处理可以并行运行,而不需要相互等待。
支持 SSL 和 TLSSNI功能。

OSI七层模式:


TCP/IP四层模式:

二、Nginx七层代理和四层代理的区别

在nginx代理中7层代理是写在http模块中的,而4层代理是写在stream模块中,与http模块并列,且做四层代理时源码编译需要添加 
--with-stream模块进行编译

7层和4层代理基于的协议不同,根据OSI七层模型,
第七层是应用层,7层代理主要是协议和内容的交换,7层代理可以 基于url和ip以及cookie和请求头 进行分流

第四层是传输层,4层代理是基于ip和端口的转发,是基于TCP/UDP协议,–with-stream 是添加四层代理模块,可以用来创建其他业务集群,比如ssh,mysql

注:
主要支持的协议有http,htps,smtp,ftp,dns,pop3,dhcp等协议,通常是http代理


★ 针对web服务,七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器,七层就是基于 URL 等应用层信息的负载均衡;
★ 针对web服务,所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡 设备设置的服务器选择方式,决定最终选择的内部服务器,
它一般走的是tcp,udp协议。

四层代理配置举例:

stream {server {listen 3308;proxy_pass mysql-db;}upstream mysql-db {server 192.20.32.30;server 192.20.32.31;}    
}

注:
四层代理设备将client发送报文中的目标地址(原来为四层代理的ip地址)修改为目标内部服务器的地址,这样client就可以和server建立TCP连接并发送数据
在stream中,server一定要配置port,proxy_pass配置行直接加集群名,**不能加http:// **


七层代理配置举例:

http {upstream web {server 192.20.21.20;server 192.20.21.21;}server {listen 8081;location / {proxy_pass http//web;root html;index index.html index.htm;}}
}

三、关于正向/反向代理区别

正向代理是客户端代理,用户清楚的知道访问的服务器是谁. 保护了客户端信息
反向代理是服务器端代理.用户不清楚访问的真实服务到底是谁. 保护了服务端信息


四、总结:

从nginx代理的配置来看,正向代理和反向代理的配置区别在于proxy_pass的配置
1.正向代理proxy_pass配置的是动态url
2.反向代理proxy_pass配置的是静态服务器


四层、七层代理与正向、反向代理的关系:
1、七层代理可以是正向代理也可以是反向代理,如上方例子中的正反向代理就是基于7层
2、四层代理都是反向代理

Nginx代理与负载均衡的关系
1、在nginx中用到了反向代理,不一定会用负载均衡
2、在nginx中用到了负载均衡,一定会用反向代理
 

http://www.lryc.cn/news/323178.html

相关文章:

  • 网络: 五种IO模型
  • AI大模型学习在当前技术环境下的重要性与发展前景
  • 【呼市经开区建设服务项目水、电能耗监测 数采案例】
  • 深度学习算法工程师面试常见问题及解答
  • OKR与敏捷开发、精益创业等方法如何协同工作?
  • 【ESP32 Arduino】定时器的使用
  • 网络基础(一)初识
  • 作业:基于udp的tftp文件传输实例
  • 【数据结构和算法】-贪心算法
  • 路由器里如何设置端口映射?
  • M3C芯片——支持工业级HMI应用,集成2D加速、4路串口及2路CAN
  • 如何做时间管理?
  • 三级数据库技术考点(详解!!)
  • 【技术栈】Redis 企业级解决方案
  • (一)Linux+Windows下安装ffmpeg
  • docker的部署与安装以及部署一个docker(容器)应用及docker容器常出现的问题
  • harmonyOS简介及背景
  • 最新,955神仙公司名单(非外企)
  • 牛客周赛 Round 37 C.红魔馆的馆主
  • AWS监控,AWS 性能监控工具
  • PHP姓名快速匿名化工具(重组脱敏)
  • JAVA后端调用OpenAI接口 实现打字机效果(SSE)
  • 超店建站携手太洋物产,共建跨境生意增长解决方案
  • 提高企业员工生产力的办法
  • XML Data – Semi-Structured Data XML 数据 - 半结构化数据
  • Python自动化之如何利用allure生成测试报告
  • 【晴问算法】入门篇—贪心算法—区间不相交问题
  • WPF意外无法启动?try-catch也无法捕捉?0xc0000409?
  • 微服务day05(中) -- ES索引库操作
  • AI智能电销机器人可以做哪些事情呢?智能机器人搭建