正向代理、反向代理

您所在的位置:网站首页 谷歌浏览器无法使用代理服务器访问 正向代理、反向代理

正向代理、反向代理

2023-07-10 03:23| 来源: 网络整理| 查看: 265

正向代理与反向代理的区别与联系

在网络通信中,有时候我们不能直接访问目标服务器,或者目标服务器不能直接响应客户端的请求,这时候就需要使用代理服务器来作为中间人,帮助我们完成请求和响应的转发。根据代理的对象不同,我们可以把代理分为正向代理和反向代理。那么它们有什么区别和联系呢?本文将从以下几个方面来介绍:

什么是正向代理和反向代理正向代理和反向代理的作用和优势正向代理和反向代理的区别和联系如何使用nginx配置正向代理和反向代理 什么是正向代理和反向代理 正向代理

正向代理是指客户端通过代理服务器来访问目标服务器,目标服务器不知道真正的客户端是谁,只知道请求来自于代理服务器。正向代理可以隐藏客户端的真实身份,让客户端访问一些原本无法访问的资源,比如Google、YouTube等。

反向代理

反向代理是指客户端通过代理服务器来访问目标服务器集群,客户端不知道真正的目标服务器是哪一个,只知道请求发送到了代理服务器。反向代理可以隐藏目标服务器的真实地址,让目标服务器集群对外提供统一的服务接口,实现负载均衡、安全防护等功能。

正向代理和反向代理的作用和优势 正向代理的作用和优势 访问原来无法访问的资源,如Google、YouTube等可以做缓存,加速访问资源对客户端访问授权,上网进行认证代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 反向代理的作用和优势 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网负载均衡,通过反向代理服务器来优化网站的负载加密/SSL加速:将SSL加密工作交由配备了SSL硬件加速器的反向代理来完成提供缓存服务 ,加速客户端访问数据统一压缩 节约带宽为网络带宽不好的网络提供服务统一的访问权限控制 正向代理和反向代理的区别和联系 区别 从定义上看,正向代理是为客户端服务的,反向代理是为目标服务器服务的从对象上看,正向代理隐藏了真实的客户端地址,反向代理隐藏了真实的目标服务器地址从位置上看,正向代理位于客户端和目标服务器之间,反向代理位于目标服务器集群之前 联系 从功能上看,正向代理和反向代理都是进行请求和响应的转发从结构上看,正向代理和反向代理都需要一个或多个中间人(即proxy)来完成转发任务从协议上看,正向代理和反向代理都可以使用HTTP或HTTPS协议来进行通信 如何使用nginx配置正向代理和反向代理

nginx是一款高性能的HTTP服务器和反向代理服务器,它可以用来实现正向代理和反向代理的功能。本节将介绍如何使用nginx来配置正向代理和反向代理,并给出一些示例代码。

nginx配置正向代理

正向代理是指客户端通过代理服务器来访问目标服务器,目标服务器不知道真正的客户端是谁,只知道请求来自于代理服务器。正向代理可以让客户端访问一些原本无法访问的资源,比如Google、YouTube等。

要实现正向代理,需要在nginx.conf文件中添加以下内容:

http { ... server { listen 8080; #监听8080端口作为代理服务器 resolver 8.8.8.8; #使用Google DNS解析域名 location / { proxy_pass $scheme://$host$request_uri; #将请求转发到目标服务器 proxy_set_header Host $host; #设置请求头中的Host为目标服务器域名 proxy_set_header X-Real-IP $remote_addr; #设置请求头中的X-Real-IP为客户端真实IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #设置请求头中的X-Forwarded-For为客户端真实IP和代理服务器IP proxy_set_header X-Forwarded-Proto $scheme; #设置请求头中的X-Forwarded-Proto为客户端使用的协议(http或https) proxy_connect_timeout 300; #设置连接超时时间为300秒 proxy_read_timeout 300; #设置读取超时时间为300秒 proxy_send_timeout 300; #设置发送超时时间为300秒 } } }

这样,我们就可以通过访问http://localhost:8080/来访问任意目标服务器的资源,比如http://localhost:8080/www.google.com/。nginx会将请求转发到目标服务器,并将响应转发回客户端。同时,nginx会在请求头中添加一些信息,来表示这是一个代理请求。

nginx配置反向代理

反向代理是指客户端通过代理服务器来访问目标服务器集群,客户端不知道真正的目标服务器是哪一个,只知道请求发送到了代理服务器。反向代理可以让目标服务器集群对外提供统一的服务接口,实现负载均衡、安全防护等功能。

要实现反向代理,需要在nginx.conf文件中添加以下内容:

http { ... #定义一个上游服务器组,用于存放目标服务器的地址 upstream backend { server 192.168.1.100:8080; #第一个目标服务器 server 192.168.1.101:8080; #第二个目标服务器 server 192.168.1.102:8080; #第三个目标服务器 } server { listen 80; #监听80端口作为代理服务器 location / { proxy_pass http://backend; #将请求转发到上游服务器组 proxy_set_header Host $host; #设置请求头中的Host为代理服务器域名 proxy_set_header X-Real-IP $remote_addr; #设置请求头中的X-Real-IP为客户端真实IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #设置请求头中的X-Forwarded-For为客户端真实IP和代理服务器IP proxy_set_header X-Forwarded-Proto $scheme; #设置请求头中的X-Forwarded-Proto为客户端使用的协议(http或https) proxy_connect_timeout 300; #设置连接超时时间为300秒 proxy_read_timeout 300; #设置读取超时时间为300秒 proxy_send_timeout 300; #设置发送超时时间为300秒 } } }

这样,我们就可以通过访问http://localhost/来访问目标服务器集群的资源。nginx会根据一定的算法(默认是轮询)选择一个目标服务器,并将请求转发到该服务器,并将响应转发回客户端。同时,nginx会在请求头中添加一些信息,来表示这是一个代理请求。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3