menu

精英意识会让人走向孤独

忘记社区密码或者保密贴查看密码的,请给我留言,并留联系方式。

Avatar

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

什么软件能做代理服务器?最简单的——Apache。越来越认为,Apache是个非常伟大的软件项目,只有想不到的,没有做不到的。

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
<Proxy your_apache_server_ip:80>
Order deny,allow
Deny from all
Allow from all
</Proxy>

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

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

配置反向代理就是个非常有趣的事情了。比如我在家里访问某个网站太慢,但是用公司服务器上很快,那么可以在公司服务器上将这个网站通过反向代理,映射到公司服务器上来访问。

反向代理可以基于一整个站点,也可以基于一个目录。首先在全局配置文件下,加入如下几行,打开反向代理。

ProxyRequests Off
<Proxy your_apache_server_ip:80>
Order deny,allow
Allow from all
</Proxy>

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

ProxyPass /test http://www.google.com/
ProxyPassReverse /test http://www.google.com/

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

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

写完这个配置之后,开始研究如何给wikipedia做个反向代理。不过由于wiki是被GFW封杀的,所以还需要用sock5代理配合apache“穿”才行。目前还没配置好,暂时反向做到google吧。
https://wiki.biti.org.cn

虽然不懂,还是要赞!希望明年能给你找个肉鸡。

还是把楼上的话看成“鸡肉”了…… ^_^!
pc,上不了wiki了,T_T

评论已关闭