根目录下的Apache + mod_auth_tkt + mod_rewrite + mod_proxy

我有一个运行在Apache服务器后面的Tomcat服务器上的Web应用程序,我使用mod_proxy将请求从httpd转发到tomcat服务器。 httpd服务器正在使用mod_auth_tkt进行身份validation,将有关用户的信息存储在环境variablesREMOTE_USER中。 我把这个variables从httpd传递给使用mod_rewrite的tomcat服务器,将其保存为头(X-Forwarded-User)。

ProxyPass设置为

httpd_server/app/ -> tomcat_server/app/ 

这是vhost.conf:

 <Location /> RewriteEngine On RequestHeader unset X-Forwarded-User RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule .* - [E=RU:%1,NS] RequestHeader add X-Forwarded-User %{RU}e </Location> <IfModule mod_proxy.c> ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /app/ http://127.0.0.1:8084/app/ ProxyPassReverse /app/ http://127.0.0.1:8084/app/ </IfModule> 

这完美的作品。 但是,如果尝试将ProxyPass更改为

 httpd_server/ -> tomcat_server/app/ 

所以把vhost.conf改成:

 ProxyPass / http://127.0.0.1:8084/app/ ProxyPassReverse / http://127.0.0.1:8084/app/ 

然后,头部(X-Forwarded-User)在Web应用程序上结束为空(空)。

经过进一步的调查,我发现如果我尝试转发不同的variables,例如REMOTE_PORT(甚至string),一切工作正确的两个configuration(应用程序接收头正确)。

有什么明显的错误,当从根目录进行代理时,为什么REMOTE_USER的转发不起作用? 我错过了什么,或者这可能是一个mod_auth_tkt问题?