三种代理服务器以及反向代理详解

1、标准代理服务器(Standard Proxy Cache)
一个标准的代理缓存通常是用来在本地网络的一台机器上存储静态的Web页面的(html ,image)。当这个页面被再次请求时,浏览器将从本地的代理缓存(Proxy Cache)直接得到它,而不是从源Web Server。浏览器明确的被配置使用代理服务器,所有的HTTP请求都直接指向代理服务器的缓存,而不是Web Server。缓存将直接满足请求(当请求再缓存中有存储时)或者将请求转发到目标服务器。

2、透明代理服务器(Transparent Cache)
一个透明的代理所要实现的功能和一个标准代理是一样的,但是它对于浏览器的操作是透明的。浏览器不需要明确的配置使用代理服务器。取而代之的是透明代理将截获网络通讯,并且将在80断口的HTTP通讯过滤出来。如果被过滤出来的请求存在于透明代理服务器的缓存中,那么它将直接被缓存所响应;如果缓存中没有,那么这个包将发给目标服务器。在Linux下透明代理是通过iptables和ipchains来截获网络通讯的。透明代理被ISPs (Internet 服务提供者)大量的使用,这是因为他们需要无浏览器设置的模式。同时,透明代理服务器也是为局域网内建立缓存的一个简单途径,因为他不需要外在的同等缓存。

3、反向代理服务器(Reverse Proxy Cache)
反向代理服务器不同于标准的代理服务器和透明代理服务器,它主要是用来减轻Web Server的负载,而不是用来减轻客户端网络带宽流量的负载。反向代理服务器可以通过缓存Web Server的静态内容来保护服务器不出现意想不到的过载现象。反向代理服务器处于internet与Web Server之间并且控制所有要到达Web Server的请求。反向代理服务器截获所有对Web Server的请求,并对进行了缓存的内容进行响应。这种方法通过减少大量的Web Server所作的实际响应,来提高Web的效率。

以下文章介绍了如何使用apache配置反向代理服务器

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache作为一个反向代理服务器(R-Proxy),可以和WAS、WLS等集成,但不能和IIS集成。

一般来说,要在外网访问内网的服务器需要在路由上做端口映射。比如路由的 IP 为 192.168.0.1 内网服务器A 的 IP 为 192.168.0.2。

要让外网通过路由访问服务器A 的 WEB 页面,就必须在路由上设置 TCP 80 端口映射。即将外网对路由公网 IP TCP 80 访问转移到服务器A 的 192.168.0.2 的 TCP 80 端口上。 这样,在外网(也就是公网)访问本局域网的公网 IP http 80 WEB 页面就是访问服务器 A 192.168.0.2 的 TCP 80 http WEB 服务。

如果有第二台服务器 B, 或者 A 要开放另外的端口,都必须在路由上再分配一个不同的端口映射到相应的机器的相应端口上。

那么,如果局域网有两台以上的服务器呢,对于服务器 A 安装 Apache 做 WEB 服务(不论是 Win32 还是 UNIX 系统),设置路由将 80 端口映射到 A。对于其他的服务器B、服务器C 可以安装 Apache 或者 IIS 或者其他可能的 http 服务软件,并不需要在路由上做端口映射,也不需要 WEB 服务使用特定端口。

甚至也可以服务器A 上另外安装一个 WEB 服务软件使用 80 以外的端口。 那么,关键的内容在于对服务器A 上的 Apache 进行设置,做一个反向代理,让外网可以通过服务器 A 的 Apache 提供的 WEB 代理来访问和 A 在一个局域网的其他服务器 WEB 页面。

我使用的是apache2.2.17

首先是Apache的安装。从http://www.apache.org上下载Apache的安装程序,双击安装程序进行安装。安装好之后屏幕右下方系统托盘处会出现一个红色的羽毛状图标,那就是Apache的控制程序。单击此图标以启动Apache服务器。这时打开IE并在IE的地址栏输入http://localhost/应当能够看到Apache的欢迎画面。

当apache正常启动后就可以进行配置了。

接下来我们修改Apache的配置文件使其支持HTTP代理服务器功能。用文本编辑器打开httpd.conf文件。该文件位于Apache安装目录的 conf目录下。如果你在安装Apache的时候没有改变安装路径,那么它应当位于C:\Program Files\Apache Group\Apache\conf\httpd.conf 。

首先要添加代理服务器模块。找到下面这几行:

1#LoadModule proxy_module modules/mod_proxy.so 2#LoadModule proxy_connect_module modules/mod_proxy_connect.so 3#LoadModule proxy_http_module modules/mod_proxy_http.so 4#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 5

去掉前面的#号使相应的模块生效。

然后对于要代理的局域网内每个服务器设置一项:

1<VirtualHost 192.168.0.2> 2ServerName www.xxx.com 3ProxyPass / http://192.168.0.3:88/ 4ProxyPassReverse / http://192.168.0.3:88/ 5</VirtualHost> 6

这部分内容只要加在httpd.conf这个文件下边即可。

然后在最后加上一句:

1ProxyRequests On 2

192.168.0.2 是服务器 A 的 IP,就是做 Apache 代理的服务器。www.xxx.com 是域名,这个必须能解析到路由公网 IP 的域名。而 http://192.168.0.3:88 是服务器 A 能访问到的内网 WEB 服务地址。IP 和端口都可以任意指定。

配置完成以后重新启动apache,就可以起到反向代理服务的作用了。

参考链接:维基百科-代理服务器

 

转载自:http://blog.darkmi.com/2012/10/25/2441.html  感谢原作者分享!

转载于:https://www.cnblogs.com/jimmy-c/p/3981118.html

代码交流 2021