科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[应用]Apache服务器之代理服务之二

[应用]Apache服务器之代理服务之二

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在客户端的网页浏览器中要指定代理服务器的地址,这样才能使用到代理服务的功能。在这里我们以微软的IE 6.0为例来说明如何设置。

作者:小胖 来源:小胖 2007年10月4日

关键字: 代理 服务器 Web服务器 Apache Linux

  • 评论
  • 分享微博
  • 分享邮件
  在客户端的网页浏览器中要指定代理服务器的地址,这样才能使用到代理服务的功能。在这里我们以微软的IE 6.0为例来说明如何设置。打开IE网页浏览器,然后执行“工具”|“Internet选项”命令,在Internet选项对话框打开连接选项卡,如下图1、图2所示:
 
图1 连接选项卡

    在图1中单击“局域网设置(L)”按钮,设置代理服务器,进入下图2。
 
图2设置代理服务器


    在图2中“自动设置”选项中选中“自动检测设置(A)”,在“代理服务器” 选项中选中“使用代理服务器”,设置好代理服务器的网址(这里为IP地址:192.168.1.1)和端口号(如80),最后单击“确认”按钮,这样就完成了客户端浏览器上设置代理服务器。

    接下来,我们可以试着连到几个网站,然后检查一下Apache服务器所设置的CacheRoot(/var/cache/httpd)目录,就可以看到已经创建了Cache的目录,这表示该台Apache服务器开始提供代理服务器的功能了。前向代理服务器通常位于用户主机和要访问的远程网络之间。它从远程服务器取得所要求的资源,然后返回给用户,同时存在磁盘上,以供下次使用。在这种情况下,客户端的主机知道它们正在使用代理服务器,因为每个主机都必须配置为使用代理服务器。

    例如,必须告诉WWW浏览器使用代理服务器,它才能使用代理服务器。所有的远程请求都通过代理服务器传输。这类代理服务器也称为缓冲代理服务器。逆(反)向服务器也可以缓冲数据,但它的作用则与前向服务器相反。

    前向代理服务器的结构如下图3所示:
  

图3 前向代理服务器


    Apache模块 mod_proxy实现了Apache的代理/网关。它实现了以下规范的代理FTP, CONNECT(用于SSL), HTTP/0.9, HTTP/1.0,和 HTTP/1.1。此模块经配置后可用上述或其它协议连接其它代理模块。

    此模块在Apache 1.1.x中处于试验阶段,而在Apache v1.2.x和Apache v1.3.x中进行了改良并去除了一些bug。然后在Apache v2.0中进行了大的修整。现在协议的支持已经升级到HTTP/1.1,并支持了过滤器。

    Apache的mod_proxy在使用ProxyRemote指令时,可以看作是一个正向代理。ProxyRemote 指令定义了此代理的远端代理。match可以是远端服务器支持的URL形式的名称,或是远端服务器使用的部分URL,或是'*'以代表服务器可以接受所有的请求。remote-server是远端服务器的部分URL。语法为:
    remote-server = protocol://hostname[:port]
    protocol是与远端服务器交换信息时使用的协议;本模块暂时只支持"http"。举例如下:
    ProxyRemote http://ghq.com/ http://mirrorghq.com:8888
    ProxyRemote * http://study.com

逆(反)向代理服务器位于互联网资源前面,逆向服务器从原始服务器找到被请求的资源,并反它返回给用户主机。

    与前向代理服务器不同的是,逆(反)向代理服务器的用户并不知道它们连接的是代理服务器而不是资源服务器本身。其结构如下图4所示:
 

图4 反向代理 点击看大图


    当使用了mod_cache配置一个逆(反)向代理后,它可以作为一个比较慢的web服务器的缓冲来使用。反向代理也可以启用高级URL策略和管理技术,从而使处于不同web服务器系统或是体系的web页面同时存在于同一个URL空间下。逆(反)向代理对于实现具有很多或不同的web站点后端的集中管理非常理想。复杂的多层服务器系统可以使用一个Apache的mod_proxy前端和任意数量的后端web服务器来进行架构。

    逆(反)向代理使用ProxyPass和ProxyPassReverse指令进行配置。可以使用mod_cache和正向代理结合启用缓冲功能。

    ProxyPass 指令将一个远端服务器映射到本地服务器的URL空间中,对于我们不想对某个子目录进行反向代理时很有用。例如:
    ProxyPass /mirror/ghq/i !
    ProxyPass /mirror/ghq http://ghq.com
    将会代理除对/mirror/ghq/i请求之外的所有对 ghq.com 的/mirror/ghq请求。

    ProxyPassReverse 指令调整由反向代理服务器发送的HTTP回应头中的URL。此指令使 Apache 调整HTTP重定向回应中Location,Content-Location和URI头里的URL。这就是Apache在作为逆(反)向代理使用时,避免以因为位于反向代理之后的后端服务器的HTTP重定向造成的绕过反向代理的实质。

    路径是本地虚拟路径的名称,url远端服务器的部分URL,与ProxyPass指令中的使用方法相同。例如:
    假定本地服务器Web地址为http://study.com/,那么下面两句实现逆(反)代理功能:
    ProxyPass /mirror/ghq/ http://ghq.com/
    ProxyPassReverse /mirror/ghq/ http://ghq.com/

    简要说明:我们不仅会把所有对<http://study.com/mirror/ghq/bar>的请求直接转为对 <http://ghq.com/bar> 的代理请求(由ProxyPass提供的功能)。它还会改变服务器ghq.com的发送:当http://ghq.com/bar被它重定向到http://ghq.com/quux时,Apache会在前转HTTP重定向回应到客户端之前调整它为http://study.com/mirror/ghq/quux

    目前新版本的Apache v 1.3.x的mod_proxy的缓冲功能已经从mod_proxy中移除并入了一个新模块--mod_cache。Apache 2.0.x的Proxy不再支持缓冲了,所有的缓冲功能已经移入了mod_cache;mod_cache现在已经能支持任何内容的缓冲了,而不仅是通过代理的内容。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章