nginx当中有两种代理方式
七层代理(http协议)
四层代理(tcp/udp流量转发)
七层代理:代理的是http的请求和响应
客户端请求代理服务器,由代理服务器转发给客户端http请求。转发到内部服务器(可以单台,也可以是一组)。
请求返回webserver:后端服务器---代理服务器---客户端
四层代理
四层代理:基于tcp/ip协议层转发代理方式。基于ip和端口号实现负载均衡或正在向代理。
四层代理无法获取http请求中的URL信息,只能对TCP/UDP的数据包进行转发。
场景选择:
七层代理:需要对http请求进行和处理,只能选择七层代理(常见的处理方式)
四层代理: 只需要转发tcp/udp数据包,可以选择四层,也可以选择七层。
七层可以对ip和端口进行转发,也可以对域名进行代理
四层只能是ip和端口
负载均衡算法:有些是无法在四层代理使用。
模块
七层代理的模块:
只能写在http模块的全局配置当中。
upstream: 用于处理http请求,支持反向代理,负载均衡,缓存功能
在upstream模块中可以配置对个服务器
四层代理的模块 :
stream只能写在全局模块当中的单独配置。stream代理无谓协议,只管流量。
四层代理和七层代理之间的区别:
七层代理:走都是用户态,需要对http的请求进行处理和解析,解析过程中,可以根据请求头和请求体的内容进行流量控制,内容过滤。但是提供的功能更高级,客户的体验更好。
四层代理:基于IP地址和端口号,只负责ip和端口转发后端服务器,不对请求做任何处理。只负责转发,四层走的是内核,四层速度较快。四层代理无法提供更加高级的功能,只能转发。
四层实例
主配nginx.conf中写
stream.ini中写
gc.ini配置
在这里插入图片描述
nginx -t