工作需要
在一台机器(httpd2.2)上面开个某个域名(http://www.abc.com)的反向代理
指向内网的一台机器
本想,这还不easy
开个ProxyPass和ProxyPassReverse应该马上搞定
于是马上就动手
<VirtualHost *>
ServerName www.abc.com
ProxyPass / http://10.10.10.10
ProxyPassReverse / http://10.10.10.10
</VirtualHost>
1,居然不行
用浏览器看发现报”循环的重定向“?
然后用telnet测,能出东西(html代码)呀
后来搞半天
发现了NameVirtualHost参数
于是想会不会是这个参数的问题呢
把它打开
NameVirtualHost *:80
再把VirtualHost里也做了相应的改动
再重启httpd
OK了!
这时仔细分析一下
才明白了前因后果
原来,这台httpd的机器原来没有VirtualHost,所有的都在一个DocumentRoot下
当我没打开NameVirtualHost的时候
其实VirtualHost根本就没有被启用(虽然在配置文件里有)
所以当我们访问http://www.abc.com这个域名的时候
并没有进入www.abc.com的VirtualHost配置
他还是用的缺省的配置,也就是原来的配置
而原来的DocumentRoot目录下的index.php有问题,他通过html代码反复重定向到原来的域名
所以这就导致了”循环的重定向“