跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 卖家故事 > nginx.4——正向代理和反向代理(七层代理和四层代理)

nginx.4——正向代理和反向代理(七层代理和四层代理)

时间:2024-04-13 19:10:30 来源:网络cs 作者:焦糖 栏目:卖家故事 阅读:

标签: 代理 
阅读本书更多章节>>>>

1、正向代理反向代理

nginx当中有两种代理方式

七层代理(http协议)
四层代理(tcp/udp流量转发)

七层代理

七层代理:代理的是http的请求和响应。
客户端请求代理服务器,由代理服务器转发给客户端http请求。转发到内部服务器(可以单台,也可以是一组)。
请求返回webserver:后端服务器---代理服务器---客户端

正向代理和反向代理:

正向代理:隐藏客户端,目标服务器只能看到代理服务器的请求,不知道客户端的ip
客户端访问代理服务器,代理服务器转发请求,后端服务器只知道代理服务器,不知道客户端ip
反向代理:隐藏后端服务器,客户端只与反向代理通信,不与后端服务器通信
客户端访问代理服务器,代理服务器转发请求,客户端不知道服务端的ip,只知道代理服务器的地址

四层代理

四层代理:基于tcp/ip协议层转发代理方式。基于ip和端口号实现负载均衡或正在向代理。
四层代理无法获取http请求中的URL信息,只能对TCP/UDP的数据包进行转发。

四层代理和七层代理之间的区别:

七层代理:走都是用户态,需要对http的请求进行处理和解析,解析过程中,可以根据请求头和请求体的内容进行流量控制,内容过滤。但是提供的功能更高级,客户的体验更好。
四层代理:基于IP地址和端口号,只负责ip和端口转发后端服务器,不对请求做任何处理。只负责转发,四层走的是内核,四层速度较快。四层代理无法提供更加高级的功能,只能转发。

 

2、选择场景:

        七层代理:需要对http请求进行和处理,只能选择七层代理(常见的处理方式)
        四层代理: 只需要转发tcp/udp数据包,可以选择四层,也可以选择七层。
七层可以对ip和端口进行转发,也可以对域名进行代理
四层只能是ip和端口
负载均衡算法:有些是无法在四层代理使用。

3、模块

七层代理的模块:

只能写在http模块的全局配置当中。
upstream: 用于处理http请求,支持反向代理,负载均衡,缓存功能
在upstream模块中可以配置对个服务器

四层代理的模块 :
stream只能写在全局模块当中的单独配置。stream代理无谓协议,只管流量。

七层代理:
http全局配置下

upstream liu {        server 192.168.10.30;        server 192.168.10.20;}location {        proxy_pass http://test;}

负载均衡的算法:

1、轮询

rr (round robin)负载均衡最简单的算法,轮询。请求轮流分配到后端服务器.
默认算法,可以不加。
默认算法,每发起一次都是新的请求,服务器上没有缓存。
处理器理解能力相近,而且对访问量比较小的网站使用。

2、加权轮询

weight 建立在默认轮询基础上。为后端服务器分配不同的权重,处理能力强的可以分配的权重值要高一些。
轮询次数基本上按照权重进行分配。服务器上也没有缓存。
中大型网站可以使用加权轮询。
权重高的服务会被频繁的请求响应。权重低的可能闲置。会和另外一种算法配合使用:最少连接算法。

3、最少连接算法

最少连接算法:会把请求放送到连接数量比较少的服务器。
最少连接数算法可以单独使用,但是一般都是结合加权轮询一块使用,避免所有的请求都发送到处理能力强的服务器,提高整个集群的稳定性。
中大型网站,可以满足日常访问

4、ip_hash

ip_hash: iphash会根据客户端ip地址解析出一个hash值,然后将请求放到对应的后端服务器,下一次用户访问时,同一客户的请求将会被分配到同一台服务器。

ip_hash第一次 200 访问之后,后续访问都是缓存。第二次访问会304 加载缓存
       注:如果后端服务器的数量发生变化,可能会进行重新分配

ip_hash适用于高并发,请求不会跳转,请求的是缓存。


5、url_hash

url_hash 根据请求的url地址计算hash值,然后将请求发送到相应的后端服务器,相同的url地址请求分配到同一台的服务器

usl_hash和ip_hash一般是结合一起使用,可以适用于并发较高的场员,只要是ip_hash和url hash

6、基于域名的反向代理:

在/usr/local/nginx/conf/nginx.conf下

upstream ky32 (server www.kgc.com;server www.benet.com;}location {proxy_pass http://ky32proxy_set_header HoST $host#把请求的主机名发送给后端proxy_set header X-Real-IP $remote_addr;#后端服务器获取客户端的真实ip地址。}

7、四层反向代理

不能用 hash(哈希),只可以使用weight 和 least_conn。
因为:四层不能处理请求的ip地址和url地址,只是转发数据包。
http七层代理:可以处理请求地址和请求的url。不能处理,只是转发数据流量。

阅读本书更多章节>>>>

本文链接:https://www.kjpai.cn/gushi/2024-04-13/158229.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论