摘要 URI 与代理不匹配

Posted

技术标签:

【中文标题】摘要 URI 与代理不匹配【英文标题】:Digest URI mismatch with proxy 【发布时间】:2013-05-04 15:18:54 【问题描述】:

我的网络上有两台服务器。一个有外部IP,另一个只有内部。我有我的服务器设置,所以转到http://my.site.com/Motes/ 实际上会转到地址为 192.168.1.102 的内部服务器的根,如下所示:

外向服务器的httpd.conf:

ProxyPass /Motes/ http://192.168.1.102/
ProxyPassReverse /Motes/ http://192.168.1.102/



<Proxy  http://192.168.1.102/*>
    Order allow,deny
    Allow from All
    AuthType Digest
    AuthName "Motes"
    AuthDigestDomain /
    AuthDigestProvider file
    AuthUserFile ps.wd
    AuthGroupFile group.file
    Require group usergroup
</Proxy>

这一直有效,直到我通过添加在内部服务器上打开摘要式身份验证:

AuthType Digest
AuthName "Motes"
AuthDigestDomain / /Motes/
AuthDigestProvider file
AuthUserFile ps.wd
AuthGroupFile group.file
Require group usergroup

到其他内部服务器根 .htaccess 文件。然后我的内部服务器抱怨:

[Sat May 04 09:37:32 2013] [error] [client ***.***.***.***] Digest: uri mismatch - </Motes/> does not match request-uri </>

有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

因此,我通过为我的内部服务器添加一个新的 CNAME 来解决此问题,我的面向外部的服务器直接代理到内部服务器,本质上是一个代理虚拟主机。

<virtualhost *:80>
ServerName internal.site.com

ProxyPass / http://192.168.1.102:80/
ProxyPassReverse / http://192.168.1.102:80/
<Proxy http://192.168.1.102:80/* >
    Order allow,deny
    Allow from All
    Satisfy Any 
</Proxy>

</virtualhost>

然后内部服务器会像问题中那样强制执行摘要身份验证。

【讨论】:

“CNAME”是什么意思?我遇到了完全相同的问题 您的 DNS 主机的 CNAME 记录,“A”记录也可以。本质上,我从使用my.site.com/Motes 到使用internal.site.com 并在'config' 文件夹下'extras' 文件夹中的vhost.conf 文件中设置一个虚拟主机。

以上是关于摘要 URI 与代理不匹配的主要内容,如果未能解决你的问题,请参考以下文章

gcov 警告:摘要的合并不匹配

您如何将 JMeter 与摘要式身份验证一起使用?

WCF Soap 客户端无法解析签名中的 URI 以计算摘要

摘要身份验证生成“令牌”

代理背后的凉亭 - 摘要

sql 星号 - 每小时代理拨出电话摘要