我有一个启用了mod_proxy的Apache webserver和一个虚拟主机proxy.domain.com。 此代理configuration为通过AuthType Basic提示用户input凭据。 然后,通过ProxyPass和ProxyReverse通过代理可以访问web.domain.com的内容。 但是,REMOTE_USERvariables是空的。 我用mod_rewrite和mod_headers读了不同的东西来实现这一点,但是我所有的尝试都失败了。 有人比我幸运吗?
谢谢。
这可以通过mod_headers,mod_rewrite和mod_proxy来实现。
在代理服务器上,我假设你有你的身份validation工作,并适当地设置REMOTE_USER。 如果是这样,那么将REMOTE_USER的值放入一个代理用户头到后端,如下所示:
RewriteRule .* - [E=PROXY_USER:%{LA-U:REMOTE_USER}] # note mod_rewrite's lookahead option RequestHeader set Proxy-User %{PROXY_USER}e
以下是发生的事情:
现在在后端,你可以得到这个头值,并像这样设置REMOTE_USER:
RewriteCond %{HTTP:Proxy-user} ^(.*)$ RewriteRule .* - [E=REMOTE_USER:%1]
以下是发生的事情: