apache 反向代理的ProxyPreserveHost 配置
2008-11-28 17:19
495 查看
前面有一章讲到了用apache2.2.4的反向代理功能实现负载均衡,运行起来很正常。不过最近发现一个问题,那就是url地址结尾是目录,让apache自动加上斜杠而引发的问题。
在不使用proxy功能时,对apache的目录配置 DirectoryIndex index.shtml ,则会自动对目录的访问补起斜杠。如:访问http://www.test.com/dir 时,如果dir为实际文件系统中的目录,apache会自动加上斜杠从而变成访问 http://www.test.com/dir/ ,也就是访问dir目录下的默认index文件 index.shtml。
而配置上proxy之后,apache变得不能自动不起斜杠了。即便是手工加上了RewriteRule ^/([^/.+]|[^/])$ /$1/ [R] 也不行,着实郁闷了一番。
经过google以及不断的更改配置,实验,发现这样一个配置: ProxyPreserveHost On 。 默认情况下它的值为Off,没有仔细研究这个参数背后的深层含意,大概意思就是反向代理转发所有主机(难道在重定向之后代理的请求变化了,使得proxy不能识别是否是从同一台主机reserver来的?)。
在ProxyPass规则最下面加上这个配置之后,问题解决。截选配置如下:
<Proxy balancer://proxy>
BalancerMember http://192.168.10.11:8083 loadfactor=1
BalancerMember http://192.168.10.12 loadfactor=1
</Proxy>
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@12582.com
ServerName www.12582.com
DocumentRoot /www
DirectoryIndex index.shtml
<Directory /www>
AllowOverride All
AddType text/html .shtml
AddType application/x-rar .rar
AddHandler server-parsed .shtml
Options +IncludesNOEXEC
SSIErrorMsg "<!-- Error -->"
Deny from 222.128.6.82
</Directory>
RewriteEngine on
ProxyPass /TLimages/ !
ProxyPass /imagelist/ !
ProxyPass /xiazai/ !
ProxyPass /ad/ !
ProxyPass / balancer://proxy/
ProxyPassReverse / balancer://proxy/
ProxyPreserveHost on
</VirtualHost>
在不使用proxy功能时,对apache的目录配置 DirectoryIndex index.shtml ,则会自动对目录的访问补起斜杠。如:访问http://www.test.com/dir 时,如果dir为实际文件系统中的目录,apache会自动加上斜杠从而变成访问 http://www.test.com/dir/ ,也就是访问dir目录下的默认index文件 index.shtml。
而配置上proxy之后,apache变得不能自动不起斜杠了。即便是手工加上了RewriteRule ^/([^/.+]|[^/])$ /$1/ [R] 也不行,着实郁闷了一番。
经过google以及不断的更改配置,实验,发现这样一个配置: ProxyPreserveHost On 。 默认情况下它的值为Off,没有仔细研究这个参数背后的深层含意,大概意思就是反向代理转发所有主机(难道在重定向之后代理的请求变化了,使得proxy不能识别是否是从同一台主机reserver来的?)。
在ProxyPass规则最下面加上这个配置之后,问题解决。截选配置如下:
<Proxy balancer://proxy>
BalancerMember http://192.168.10.11:8083 loadfactor=1
BalancerMember http://192.168.10.12 loadfactor=1
</Proxy>
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@12582.com
ServerName www.12582.com
DocumentRoot /www
DirectoryIndex index.shtml
<Directory /www>
AllowOverride All
AddType text/html .shtml
AddType application/x-rar .rar
AddHandler server-parsed .shtml
Options +IncludesNOEXEC
SSIErrorMsg "<!-- Error -->"
Deny from 222.128.6.82
</Directory>
RewriteEngine on
ProxyPass /TLimages/ !
ProxyPass /imagelist/ !
ProxyPass /xiazai/ !
ProxyPass /ad/ !
ProxyPass / balancer://proxy/
ProxyPassReverse / balancer://proxy/
ProxyPreserveHost on
</VirtualHost>
相关文章推荐
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- apache配置 virutalhost 正向代理,反向代理
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- Apache配置反向代理、负载均衡和集群(mod_proxy方式) 经典
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- Apache HTTP配置反向代理入门
- 【反向代理】xampp apache配置反向代理
- tomcat配置及基于nginx、apache反向代理tomcat
- wdlinux中apache配置反向代理模块
- 配置apache 实现多域名反向代理转发
- CentOS 6下,远程安装KVM虚拟机,并使用apache mod_proxy反向代理建立多个web服务器
- Mac apache 配置反向代理到 Https
- Apache使用mod_proxy和mod_jk反向代理Tomcat
- Linux与云计算——第二阶段 第一十一章:代理Proxy服务器架设—Squid配置反向代理
- Apache配置正向代理和反向代理的方法
- apache使用mod_jk和mod_proxy反向代理tomcat
- apache的mod_proxy 反向代理