为Apache启用mod_proxy做正向代理、反向代理- PHP程序员的日志- 网易博客

为Apache启用mod_proxy做正向代理、反向代理

2010-06-06 20:34:57 阅读11 评论0 字号:

如果没有apache没有安装proxy模块,可以不用重新编译添加模块。

/usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c (ps 必须2个c一起编译,不然会报错)
/usr/local/apache/bin/apxs -c -i mod_proxy_http.c proxy_util.c

apache提供了mod_proxy模块用于提供代理服务,能够支持的包括正向代理、反向代理、透明代理、缓存、负载均衡,HTTP代理、FTP代理、SSL代理等若干强大的功能。

通常我们使用的比较多的,是正向代理。也就是在浏览器的网络连接属性框中,填写上一个代理服务器的ip和端口,即可通过代理服务器中转,去浏览网页。

配置这种代理非常简单:

首先在apache上启用mod_proxy模块,需要注意的是,如果在apache-2.2上,则还需要加载名为mod_proxy_http的模块。因为2.2系列把代理功能都拆分成N个小模块了。

打开apache的conf,加入如下几行:(全局配置)

ProxyRequests On
ProxyVia On

Order deny,allow
Deny from all
Allow from all

然后保存退出,重启加载apache服务:/etc/init.d/httpd restart或者做graceful也可以。 现在即可在浏览器的网络连接属性框中,填写上your_apache_server_ip的ip地址,端口是80,开始用代理了。

使用apache提供的代理,也可以加身份验证,或者设置ACL来限制客户端来源等。这些配置就和普通的apache站点配置一样。

配置反向代理就是个非常有用的功能。例如从某地访问google太慢,但是机房服务器上很快,则可在服务器上设置反向代理连接到google,也就是把google映射到服务器上来访问。

然后新建一个网站,即创建一个标准的配置段。这里我们将站点/google目录设置为google的反向代理。在这段里边,加入下边一内容:

ProxyRequests Off
ProxyPass /google http://www.google.com/
#ProxyPassReverse /google http://www.google.com/

然后保存配置文件重新启动apache。现在即可使用浏览器来访问我的网站的/google目录。当打开这个目录的时候,会发现页面是google。点击google的下级页面,都可以正常的打开访问,而此时浏览器中的代理服务器并未设置任何内容——这就是反向代理。

通过反向代理,我们可以将web服务器放置在防火墙后,在web服务器前端使用mod_proxy配置反向代理,并打开apache的mod_cache缓存模块,更可以极大的提高对静态内容的访问性能。

在RewriteRule指令中使用[P]标记也可以:
RewriteEngine On
RewriteRule ^/google/(.*) http://www.google.com/$1 [P]

参考
http://www.cncms.com.cn/apache/6991.htm
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_proxy.html
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html

<#--{zx1}日志--> <#--推荐日志--> <#--引用记录--> <#--相关日志--> <#--推荐日志--> <#--推荐阅读--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构-->
郑重声明:资讯 【为Apache启用mod_proxy做正向代理、反向代理- PHP程序员的日志- 网易博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——