`
小混蛋
  • 浏览: 21206 次
社区版块
存档分类
最新评论

HTTP代理与反向代理

阅读更多
出于安全考虑,局域网内的机器访问访问墙外的网站借助于代理服务器进行,如果把局域网外Internet想象成一个巨大的资源库,局域网内的用户要访问这个库里的资源必须统一通过代理服务器进行。反过来,如果局域网向Internet提供资源,让Internet上的用户访问局域网内的资源也可以设置成一个代理服务器,只不过与我们常用的代理服务器方向正好相反,所以叫反向代理(Reverse Proxy)。

1、代理可分为三种: 标准的代理缓冲服务器、透明代理缓冲服务器、反向代理缓冲服务器
(1)标准的代理缓冲服务器
  这种方式需要在浏览器配置中指明代理服务器的IP地址和端口号。浏览器每次都把请求送给代理服务器处理。代理服务器可以有缓存的功能:它根据请求确定是否连接到远程web服务器获取数据,如果在本地缓冲区有目标数据,则直接将缓存数据传给用户即可,如果没有的话则先取回数据,先在本地保存一份缓冲,然后将数据发给客户端浏览器。
(2)透明代理缓冲服务器
  透明代理缓冲服务器和标准代理服务器的功能完全相同,但是代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口号)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以透明代理对于ISP(Internet服务器提供商)特别有用。
(3)反向代理缓冲服务器
  反向代理是和前两种代理完全不同的一种代理服务,使用它可以降低原始web服务器的负载。反向代理服务器承担了对原始web服务器的静态页面的请求,防止原始服务器过载。它位于本地web服务器和Internet之间,处理所有对web服务器的请求,组织了web服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户;如果没有缓冲,则先向web服务器发出请求,取回数据并在本地缓存后再发送给用户。这种方式通过降低了向web服务器的请求数,从而降低了web服务器的负载。


2、反向代理有两种用法:
(1)一种是为多个网站的Web服务器提供代理,这些网站的域名都指向反向代理服务器,对这些网站的请求全都发给了反向代理,由反向代理服务器转发HTTP请求给相应网站的Web服务器。
(2)一种是为一个网站的Web服务器集群提供代理,反向代理作为负载均衡器决定具体哪个Web服务器接收请求。

反向代理总是位于Web服务器的前端,Internet上的用户对Web服务器的连接要先经过反向代理,然后由反向代理决定哪个Web服务器处理用户请求,并将请求路由给相应的Web服务器。对静态内容可以在反向代理上缓存,这样就不用再向Web服务器路由了。

3、除了缓存和负载均衡,反向代理还能提供如下功能:

(1)安全:反向代理隔离了用户和Web服务器,用户很难针对特定的服务器发动攻击;
(2)数据加密/SSL加速: 某些Web服务器可能不具有SSL加密功能,但是具有加密功能的反向代理服务器可以为Web服务器提供数据加密,而且装备了SSL加速硬件的反向代理服务器还能为Web应用提供了高速的加密通道;

(3)压缩:代理服务器能压缩经过的数据以节省带宽
分享到:
评论

相关推荐

    nginx正向代理与反向代理详解

    反向代理服务器对外部用户透明,用户并不直接与内部服务器通信,而是与反向代理服务器交互,由反向代理服务器决定将请求路由到哪个内部服务器。 在Nginx中配置反向代理,同样需要编辑配置文件,但这次我们将指定一...

    HTTP路径反向代理

    HTTP路径反向代理,将远端HTTP服务反向代理到本地HTTP子目录下,解析修改HTTP请求头与响应头并修改链接位置,重定义Content-Length,遇到HTTP响应gzip压缩编码时解压后进行修改并可以重新gzip压缩发回用户,用户可以...

    Java实现的反向代理程序(源码版)

    使用Java编写的反向代理程序(源代码),通过简单的参数配置即可实现某些特定站点的反向代理,并在此过程中改变一些站点的特定行为。例如:允许特点站点跨域访问被代理的站点,或者屏蔽被代理站点识别请求访问客户端...

    基于Netty框架的Java内网穿透与反向代理工具设计源码

    该项目是一款基于Netty框架开发的Java内网穿透与反向代理工具设计源码,总计包含117个文件,涵盖70个Java源文件、9个PNG图片文件、8个XML配置文件、4个Markdown文件、4个CRT证书文件、3个HTML文件以及少量其他类型...

    基于Netty实现的内网穿透&反向代理的工具 (支持TCP上层协议和HTTP的穿透式反向代理).zip

    基于Netty实现的内网穿透&反向代理的工具 (支持TCP上层协议和HTTP的穿透式反向代理).zip

    nginx 负载均衡与反向代理资源

    **Nginx是一款高性能、轻量级的HTTP和反向代理服务器,被广泛应用于Web服务领域,尤其在处理高并发连接方面表现出色。在Win7 64位系统上安装Nginx,可以利用其强大的负载均衡和反向代理功能,优化网站性能并提升可用...

    nginx 反向代理.docx

    **示例:** 当用户访问网站时,他们实际上是在与反向代理服务器交互,而不是直接与网站的实际服务器通信。反向代理服务器会根据规则选择适当的真实服务器来处理请求,并将响应返回给客户端。 **特点:** - 客户端不...

    Go-简单的反向代理用于内网穿透

    在Go语言中,标准库`net/http`提供了创建反向代理的基础。`http.Handler`接口定义了处理HTTP请求的方法,而`http.ReverseProxy`类型实现了这个接口,可以方便地构造一个反向代理。以下是一个简单的反向代理示例: `...

    nginx+tomcat反向代理安装配置

    现在,我们来到`nginx`与`tomcat`的反向代理配置阶段。这里有两个关键配置文件:`nginx配置反向代理.conf`和`proxy.conf`。`nginx配置反向代理.conf`通常是主配置文件,包含对`nginx`的基本配置和服务器块。在服务器...

    使用nginx(https)为(http)做反向代理.zip

    本主题聚焦于如何使用Nginx作为反向代理,将HTTPS流量转换为HTTP内部通信,以确保用户数据的安全性同时优化服务器性能。以下是关于这个主题的详细解释: 首先,Nginx是一个高性能的Web服务器和反向代理服务器,它以...

    tomcat反向代理机制视频

    这通常需要设置服务器的虚拟主机(Virtual Host)和Connector,并使用如Nginx或Apache HTTP Server这样的外部反向代理服务器。视频可能详细讲解了在server.xml文件中添加必要的代理配置,包括指定目标服务器地址、...

    Nginx反向代理服务器配置基础教程

    在现代Web服务部署中,Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于负载均衡、反向代理以及静态资源服务等多个场景。本文将详细介绍如何在CentOS 6.6 x64环境下搭建Nginx反向代理服务器,并通过具体...

    Web APP 如何实现类似Nginx反向代理转发功能-zhangyannan1

    如果我们访问 http://testreverseproxyphp.chinacloudsites.cn/proxy,我们应该能够看到 Java 页面,这说明反向代理转发功能已经生效。 通过上述步骤,我们已经成功地实现了类似 Nginx 反向代理转发功能。这种技术...

    7ghostPHP反向代理脚本

    7ghostPHP反向代理脚本通过将HTTP请求重定向到其他服务器,实现了这一目的,尤其适用于负载均衡和内容分发网络(CDN)场景。 首先,`.htaccess`文件是Apache Web服务器配置的一部分,用于实现对目录级别的配置,...

    Cobalt_Strike_C2隐匿多级nginx反向代理1

    Nginx 是一款高性能的 HTTP 和反向代理服务器,可以将客户端请求转发到其他服务器,从而隐藏原始服务器的身份。在多级反向代理的场景中,请求会经过多个 Nginx 服务器,每级都指向下一个级别的服务器,最终达到目标 ...

    win2019下IIS部署反向代理及Rewrite包

    在Windows Server 2019 (Win2019) 上部署IIS(Internet Information Services)作为反向代理以及配置Rewrite模块是一项重要的任务,尤其对于前端开发人员来说,这有助于实现Vue.js应用的高效部署。本文将详细介绍...

    squid反向代理配置例子

    在IT行业中, Squid是一个广泛使用的开源HTTP代理服务器和缓存系统,尤其在构建网络缓存和反向代理服务方面表现突出。本文将详细讲解如何使用Squid进行反向代理配置,通过提供的文件名,我们可以看到有四种不同的...

Global site tag (gtag.js) - Google Analytics