Apache配置正向代理和反向代理的方法
1、这里介绍的是Apache2.2,仅适用于Apache2.2,Apache2.4配置后会无法启动!
——该方法已经亲身测试!

2、正确安装Apache2.2后,修改httpd.conf文件,新增:
LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_http_module modules/mod_proxy_http.so
配置文件httpd.conf中都有,只不过被注释掉了,只需要去掉注释即可

3、另外还需要在httpd.conf文件中增加配置:
Include conf/extra/httpd-vhosts.conf
引入vhost文件,否则配置的代理不能加载

4、如果你想监听别的端口, 修改Listen参数,可以监听多个端口,例子中监听的是80端口

5、相应的,在httpd.conf文件监听的端口要在httpd-vhosts.conf文件里写上,监听了80端口就写上80,还监听了81端口,也要写上81端口
NameVirtualHost表示vhost匹配的请求的ip和端口那些会取扫描vhost

6、以上配置不管是反向代理还是正向代理都要进行配置,下面说一下如果进行正向代理,配置 httpd-vhosts.conf

7、解释一下:<VirtualHost *:80>代表的意思:VirtualHost 后面的参数表示的是该VHost的IP/域名/和端口, 此处表示的就是监听所有80端口的请求, 但是由于ServerName里写了www.test.com, 所以这个vhost匹配的是www.test.com:80,

8、可以如下进行配置 :
(1) IP: port, 例如 <VirtualHost 175.2.22.65:8088>, 访问的时候通过IP访问

9、 (2) Domain, 例如 <VirtualHost www.test1.com>, 访问的时候通过域名访问, 也可以指定里面的ServerName来指定域名

10、 (3) *, 表示匹配所有对Apache监听主机的请求, 只要是apache监听到的请求都可以匹配该虚拟主机

11、现在看正向代理设置那一段
ProxyRequests On:开启Apache正向代理
ProxyVia On:控制位于代理服务器链中的代理请求的流向

12、引用Apache2.2官方文档中对ProxyVia的解释如下:
如果设置为默认值Off ,将不会采取特殊的处理。如果一个请求或应答包含"Via:"头,将不进行任何修改而直接通过。
如果设置为On每个请求和应答都会对应当前主机得到一个"Via:"头。
如果设置为Full ,每个产生的"Via:"头中都会额外加入Apache服务器的版本,以"Via:"注释域出现。
如果设置为Block ,每个代理请求中的所有"Via:"头行都将被删除。且不会产生新的"Via:"头。
<Proxy *>...</Proxy>:用来控制谁可以访问你的代理

13、下面进行反向代理配置,看下配置文件:

14、解释一下具体含义
ProxyPass /portal http://10.12.1.80:8083/portal : 将 http://10.12.1.80:8083/portal 域下的所有请求转发给 http://10.12.1.80:8083/portal 代理,
ProxyPassReverse /portal http://10.12.1.80:8083/portal。那么在重定向的时候,Apache会将HTTP请求重新设定
