版权声明 :可以任意转载,但转载时必须标明原作者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

使用apache搭建代理服务器相关推荐

  1. Apache搭建代理服务器

    Apache版本2.2 众所周知Apache是目前最优秀的HTTP服务器.实际上它不仅能当作服务器使用,也能够被用来架设代理服务器.本文就如何使用Apache架设HTTP代理服务器进行说明. 本文将基 ...

  2. centos7使用squid搭建代理服务器

    centos7使用squid搭建代理服务器 Squid是Linux自带的代理软件,与其它代理软件如Apache.Socks等相比,下载安装简单,配置灵活,支持缓存和多种协议. #安装yum insta ...

  3. 用nodejs搭建代理服务器步骤

    前端开发者在工作中常常遇到跨域的问题,一般我们遇到跨域问题主要使用以下办法来解决: 1.jsonp 2.cors 3.配置代理服务器. jsonp不是很灵活,只能发送get请求,不能发送psot请求, ...

  4. RHEL 5服务篇—使用Apache搭建web服务(四)部署AWStats网站分析系统

    在httpd服务器的访问日志文件access_log中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解web站点的访问情况.但是由于access_log文件记录的信息太多,查看起来很不方便 ...

  5. centos7.3下apache搭建django[未成功]

    centos7.3下apache搭建django[未成功] 1 apache肯定已经按照完毕了, 如果没有  yum install httpd yum install mod_wsgi 安装完成之后 ...

  6. 使用腾讯云Ubuntu20.04搭建代理服务器

    文章目录 安装 配置文件位置 云服务器开放端口 + 添加规则 运行停止状态重启 连接测试 参考 安装 sudo apt-get install tinyproxy 配置文件位置 /etc/tinypr ...

  7. 使用TinyProxy搭建代理服务器

    背景 办公电脑所在网络无法连接外网,机房服务器可以连接外网,通过服务器代理上网: 一.CentOS下TinyProxy安装–搭建代理服务器 TinyProxy是个轻量级简单的HTTP/HTTPS代理程 ...

  8. linux搭建代理服务器+蚁剑配置客户端代理

    一:linux搭建代理服务器 0x00 介绍 关于搭建代理服务器的方法,我也是刚刚接触,从网上找了一些能够行得通的方法来给大家做个分享: 这里我用的是Tinyproxy作为代理服务软件.这个东西很小, ...

  9. 腾讯云轻量应用服务器 CentOS7.6 +Tomcat/apache 搭建个人web项目,并允许外网通过80或8080端口访问【超详细】

    目录 1. 腾讯云购买学生轻量应用服务器 2. 为服务器用户设置密码允许远程登录 3. 本地下载Xshell和Xftp远程管理更方便 4. 域名认证和域名解析 5. 服务器安装JDK和Tomcat 6 ...

最新文章

  1. 棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组
  2. C# 移除数组中重复项
  3. 计算机专业考试基础知识,计算机专业基础知识要点及考试考试.docx
  4. RKNN Toolkit使用教程
  5. ahjesus C# 4.0 Parallel 并行运算
  6. 项目管理指标_项目经理必掌握的九大项目管理问题
  7. 对软件工程这门课的收获与总结
  8. Cocos2d-x学习笔记(3)
  9. java 二维数组动态添加,菜鸟求助: 二维数组如何实现动态接收?
  10. 苹果修复 Gatekeeper 绕过漏洞
  11. 随风轻逝--感悟2005
  12. 什么是Receptive Field
  13. uniapp微信小程序老预览失败,或者上传失败(已解决)
  14. 细数那些年经典有深度的电影
  15. 地址转换成百度经纬度,数据太多!不愿意花钱?
  16. 一颗璀璨的月光宝石--Lua
  17. 擎天架构加持,华为云Stack打算在混合云市场怎么打?
  18. 版本管理工具介绍—Git篇
  19. 易语言与服务器即时通讯,求易语言简单即时通讯
  20. 2017.10.12 记者招待会

热门文章

  1. 职称计算机ppt2003注意,职称计算机考试考注意事项.ppt
  2. android添加图片控件代码,如何在android studio中添加图标图像按钮
  3. php图形 验证码代码,PHP制作图形验证码代码分享,php图形验证码代码_PHP教程
  4. python paramiko详解_python paramiko模块简介
  5. 笔记本电脑和台式电脑在家里没有装网也可以上网(真后悔现在才看到...,因为我安了网线)
  6. 色度亮度对比度计算方法
  7. 在cmd中运行.java文件
  8. Exchange Server 2013 日常管理经典案例:统计成员和组
  9. 洛谷P2615 [NOIP2015 提高组] 神奇的幻方
  10. Linux 查看文件类型