设置mod_proxy以将http身份验证传递给服务器

时间:2011-06-02 10:01:04

标签: apache proxy credentials http-authentication

我将Apache配置为代理服务器时遇到问题。目前,我通过端口80使用domain.net访问MS Sharepoint安装。在能够使用它之前,我必须输入用户名和密码。到目前为止一切都很好。

现在我希望能够通过子域web.domain.net访问网站。托管此站点的服务器在内部网络中的另一台计算机上运行。我提出的解决方案是将端口80重定向到运行apache的计算机以服务新网站,并将对sharepoint的任何请求代理到sharepoint服务器。

到目前为止,我启用了httpd.conf中的所有代理模块,并添加了一个虚拟主机。 编辑:首次回复后更新了配置。

<VirtualHost *:80>
    ServerName domain.net

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyErrorOverride On
    ProxyPass   /   http://sharepoint/
    ProxyPassReverse   /   http://sharepoint/

    <Location />
        AuthType basic
        AuthBasicAuthoritative Off
        SetEnv proxy-chain-auth On
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

这很有效。输入domain.net会将我转发给sharepoint服务器。现在出现了实际问题。 sharepoint要求我提供我的凭据。但是当我输入它们时,登录表单会一直弹出,因为我输入了不正确的用户名和密码。

似乎凭证不会通过代理转发到sharepoint。

你能告诉我如何解决这个问题吗?是否可以使用mod_proxy执行此操作?

1 个答案:

答案 0 :(得分:9)

请参阅http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html:有一个proxy-chain-auth环境变量,可以将凭据转发到代理服务器。