4

我已经按照下面的配置配置了一个 Apache 服务器来为我们的 Splunk 安装提供 SSO 和反向代理。SSO 的工作方式与将运行在端口 8000 上的 Splunk 实例隐藏在 /splunk URL 后面的反向代理一样工作。

ProxyPass /splunk http://localhost:8000/splunk
ProxyPassReverse /splunk http://localhost:8000/splunk
<Location /splunk >
        # Kerberos Authentication
        AuthType Kerberos
        AuthName "Kerberos Login"
        KrbAuthRealms MYDOMAIN.COM
        Krb5KeyTab /etc/krb5.http.keytab
        KrbMethodNegotiate on
        KrbAuthoritative on
        KrbMethodK5Passwd off
        KrbLocalUserMapping on
        KrbSaveCredentials on
        require valid-user

        # SSO
        RewriteEngine On
        RewriteCond %{LA-U:REMOTE_USER} (.+)$
        RewriteRule . - [E=RU:%1]
        RequestHeader set REMOTE_USER %{RU}e
</Location>

问题出在 Apache 日志中,我收到很多以下错误消息。

[client x.x.x.x] Request exceeded the limit of 10 subrequest nesting levels due to probable confguration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://splunk.mydomain.com/splunk/en-GB/debug/sso

我不确定这个问题是否与 Splunk 有关。有没有其他人看到这个,我该如何解决这个问题?

4

1 回答 1

8

尝试

RewriteRule . - [E=RU:%1,NS]

确保 RewriteRule 不适用于内部子请求。

于 2012-06-27T09:49:24.773 回答