网站开发有什么好的论坛,群站优化之链轮模式,个人网站建设,秦皇岛开发区建设局网站一、理解nginx服务代理 Nginx代理有正向和反向代理两种类型#xff0c;可以基于osi七层模型中的第四层#xff08;传输层#xff09;和第七层#xff08;应用层#xff09;进行代理 注#xff1a; nginx 一般支持的是7层代理#xff0c;支持四层代理一般使用 lvs 或者ha…一、理解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 注 主要支持的协议有httphtpssmtpftpdnspop3dhcp等协议通常是http代理 ★ 针对web服务七层通过虚拟的 URL 或主机名接收请求然后再分配到真实的服务器七层就是基于 URL 等应用层信息的负载均衡 ★ 针对web服务所谓四层负载均衡也就是主要通过报文中的目标地址和端口再加上负载均衡 设备设置的服务器选择方式决定最终选择的内部服务器 它一般走的是tcpudp协议。 四层代理配置举例
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一定要配置portproxy_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中用到了负载均衡一定会用反向代理