使用apache搭建代理服务器

使用apache搭建代理服务器版权声明 可以任意转载 但转载时必须标明原作者 charlee 原始链接 http tech idv2 com 2004 12 04 create proxy with apache 以及本声明 众所周知 Apache 是目前最优秀的 HTTP 服务器 实际上它不仅能当作服务器使用 也能够被用来架设代理服务器 本文就如何使用 Apache 架设 HTTP 代理服务器进行说明 本文将基于 Win32 版

版权声明
:可以任意转载,但转载时必须标明原作者charlee、原始链接

http://tech.idv2.com/2004/12/04/create-proxy-with-apache/
以及本声明。
众所周知Apache是目前最优秀的HTTP服务器。实际上它不仅能当作服务器使用,也能够被用来架设代理服务器。本文就如何使用Apache架设HTTP代理服务器进行说明。
本文将基于Win32版的Apache 2.0.47进行说明。以前的Apache 1.x版配置方法稍有不同,但这里不作说明。
首先是Apache的安装。从 
http://www.apache.org
上下载Apache的安装程序,双击安装程序进行安装。安装好之后屏幕右下方系统托盘中会出现一个红色的羽毛状图标,那就是Apache的控制程序。单击此图标以启动Apache服务器。这时打开IE并在IE的地址栏中输入
http://localhost/
应当能够看到Apache的欢迎画面。
接下来我们修改Apache的配置文件使其支持HTTP代理服务器功能。用文本编辑器打开httpd.conf文件。该文件位于Apache安装目
录的conf目录下。如果你在安装Apache的时候没有改变安装路径,那么它应当位于C:\Program Files\Apache
Group\Apache\conf\httpd.conf。
首先要添加代理服务器模块。找到下面这几行:
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
去掉前面的#号使相应的模块生效。然后使用托盘中的Apache控制程序重新启动Apache。(也可以使用命令行net stop
apache2然后net start apache2命令进行服务器重启。)这时Apache应该能够正常启动,虽然现在它还不是代理服务器。
然后我们在配置文件中加入下面这一行:
ProxyRequests   On
然后再次重新启动Apache。这时Apache就是HTTP代理服务器了。打开IE,选择菜单“工具→Internet选项→连接→局域网设置
”,选中“为LAN使用代理服务器”,然后在下方的地址中填入127.0.0.1,端口填写80。填好之后确定,此时如果能够通过IE连接到
Internet,则说明代理配置正确无误。
(注:此处的端口80是httpd.conf中Listen指令指定的端口号。如果你修改了Listen命令使Apache监听其他端口,那么在IE的设
置中也请做相应的改变。另外,如果你使用拨号连接的话,那么请在“工具→Internet选项→连接”中修改相应的拨号连接的代理设置,而不要修改局域网
代理设置)
接下来我们尝试一下访问控制。编辑httpd.conf,加入下面的设置:
    Order allow,deny
    Allow from all
    Deny from 127.0.0.1
此配置的意思是,允许除本地计算机之外的所有计算机访问代理。然后重新启动Apache。再次试图使用IE连接Internet,你会收到类似于下面的信息:
Forbidden
You don’t have permission to access http://www.google.com/ on this server.
说明本地计算机已经被禁止使用代理。而相反地,下面的设置:
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
的意思是,仅允许本地计算机使用代理服务器。
Proxy指令后面的*号表示客户端使用代理服务器访问的目的地址。在上面两个例子中,*号表示所有地址,即禁止使用代理服务器访问所有地址。而如果想仅禁止某一些地址时,可以参考下面的例子:
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Order allow,deny
    Allow from all
    Deny from 127.0.0.1
上面这个例子的意思是,仅允许本地计算机访问
http://www.google.com/
,并且禁止本地计算机对于
http://www.yahoo.co.jp/r/
下的资源的访问。由于Apache的Proxy指令目前还不能够支持多个目标地址,也就是说不能写成的形式,因此如果你想对多个目标地址做出限制时,必须使用多个Proxy指令。
如果想对所有使用者(而不仅仅是部分使用者)访问某些地址做出限制时,可以使用ProxyBlock的指令:
ProxyBlock microsoft co.jp www.google.com
上面这条指令阻挡了三种目标地址:包含microsoft的地址,包含co.jp的地址,包含www.google.com的地址。但是实际使用IE测试时你会发现,
http://www.google.com/

http://www.google.co.kr/
(Google韩国站)将都不能访问,而
http://www.google.co.kr/

没有满足上面阻挡的规则。这是因为,Apache启动时将对阻挡地址中看起来像是主机名或者域名的字符串进行域名解析,如果解析成功就阻止掉相应的目标
IP地址。而www.google.co.kr和www.google.com的IP地址相同,因此www.google.co.kr也同时被阻挡了。另
外,由于Apache试图去解析域名,因此当你使用ProxyBlock时,Apache的启动时间会变长。
另外要注意,如果写ProxyBlock *,那么将不能通过该代理服务器来访问任何地址。
最后再介绍一下二级代理。使用Apache可以做二级代理,即让本身已经是代理服务器的Apache通过其他的代理服务器来连接Internet。加入以下指令:
ProxyRemote * http://12.34.56.78:8080
即可让Apache将12.34.56.78:8080作为代理服务器。ProxyRemote指令之后的第一个参数表示协议名称或目标地址,例如:
ProxyRemote ftp http://12.34.56.78:8080    # 对于所有ftp请求使用二级代理
ProxyRemote http://www.google.com/ http://12.34.56.78:8080    # 当访问www.google.com时使用二级代理
                
                
                

本文来自ChinaUnix博客,如果查看原文请点: http://blog.chinaunix.net/u/1604/showart_1988065.html









































































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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178644.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:48
下一篇 2026年3月26日 下午4:49


相关推荐

  • css清除浮动的四种方法(详细)

    css清除浮动的四种方法(详细)css 清除浮动的四种方式

    2026年3月17日
    2
  • 神经网络–反向传播详细推导过程

    神经网络–反向传播详细推导过程概述以监督学习为例,假设我们有训练样本集  ,那么神经网络算法能够提供一种复杂且非线性的假设模型  ,它具有参数  ,可以以此参数来拟合我们的数据。为了描述神经网络,我们先从最简单的神经网络讲起,这个神经网络仅由一个“神经元”构成,以下即是这个“神经元”的图示:这个“神经元”是一个以  及截距  为输入值的运算单元,其输出为  ,其中函数  被称为“激活函数”。在本教程中,我们选用sigmoid函…

    2022年5月6日
    63
  • Navicat15 for sql激活码【2022最新】2022.02.19

    (Navicat15 for sql激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    414
  • 集合及运算_集合的概念及运算

    集合及运算_集合的概念及运算[TOC]数据结构与算法_Python_C完整教程目录:https://www.cnblogs.com/nickchen121/p/11407287.html更新、更全的《数据结构与算法》的更新网

    2022年8月6日
    7
  • pdf.js使用方法「建议收藏」

    pdf.js使用方法「建议收藏」项目中显示pdf的功能,浏览过不少的技术帖,都不太理想,花了点时间研究了下pdf.js正确使用方法,总结下:1.防止自己忘记2.工作留有痕迹3.供大家参考借鉴pdf.js:将PDF文件解析后生成一张.png图片,利用canvas元素显示在页面上,此方法不推荐使用,呈现在页面上的pdf会模糊,目前没有找到有效解决办法,给爱钻研的小伙伴提供个思路,在pdf.js官网上有…

    2022年7月11日
    25
  • netperf 而网络性能测量

    netperf 而网络性能测量

    2022年1月15日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号