最近遇到一个项目,需要访问某单位的内网服务器,对方要求必须要配置一个前置机,来转发所有的web请求,然后就学了一下反向代理,查了一些资料,也完成了HelloWorld的例子。
关于反向代理的介绍,可以参考 介绍1和 介绍2 相互补充吧,关于概念的介绍挺不错的。
我现在仅仅是完成了第一步,就是配置转发请求。
操作系统是centos,关于linux安装apache就不多说了
apache安装完成后,进入 /etc/httpd/conf目录,打开 httpd.conf文件
然后
第一步
看一下
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
是否打开,如果没有打开,去掉上面代码前面的#
第二步
打开/etc/httpd/conf目录下的httpd.conf,在末尾添加如下代码
<VirtualHost 123.123.123.123:8800>
ServerName example
ServerAlias example
ProxyRequests off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://www.baidu.com/
ProxyPassReverse / http://www.baidu.com/
</VirtualHost>
简单说一下这几个参数
第三步
重启apache, 进入 /etc/init.d/ 目录,执行 ./httpd restart
这样,当我们在客户端浏览器中输入 http://123.123.123.123:8800/ 时,页面将返回百度首页,当我们访问访问http://123.123.123.123:8800/admin/index.html 时,应该返回 http://www.baidu.com/search/error.html 因为我们访问的路径不存在嘛
以上就是最基本的使用apache配置代理转发请求
更详细的配置可以再看更详细的博客
如:
apache配置正向代理与反向代理
Ubuntu配置反向代理
原文:http://blog.csdn.net/zhdl11/article/details/44182725