Apache Kerberos 身份验证性能不佳

Apache Kerberos 身份验证性能不佳

我有一个 Apache 实例,它使用 Kerberos 进行 SSO,我们正在运行一个内部应用程序。但是性能非常非常差。

我相信,从 tcp 转储来看,当用户点击应用程序上的某些 dojo 表单时,apache 会调用我们的 KDC,以确保用户具有这些文件的权限。

由于 dojo 库相当庞大,这需要很长时间才能运行,并严重影响基于 dojo 的表单加载的性能。

我们正在使用mod_auth_kerb,目前我们的 httpd.conf 文件如下所示。

<Directory "/opt/myapp/public">
    AllowOverride All
    Order allow,deny
    Allow from all
    AuthType Kerberos
    AuthName KerberosLogin
    KrbServiceName HTTP/[email protected]
    KrbMethodNegotiate On
    KrbMethodK5Passwd On
    KrbAuthRealms MYDOMAIN.COM
    Krb5KeyTab /etc/krb5.keytab
    require valid-user
</Directory>

是否有一个命令可以放入 httpd.conf 文件或 .htaccess 文件,然后放入包含 dojo 库的 javascript 目录中,以告诉 apache 不要验证对该目录的访问?

我相信这将使网站性能提高 100 倍。(是的,确实很糟糕)

谢谢

答案1

这是个盲目的尝试,但你检查过 DNS 在 Web 服务器上是否正常工作吗?如果它在第一次尝试时无法解析所有需要解析的内容,它将超时并转到 resolv.conf 中列出的第二台服务器,这可能是第一次尝试花费很长时间后成功的原因。

答案2

我怀疑这与 Krb 身份验证有关。一旦通过身份验证,mod_auth_kerb 的行为就像基本身份验证一样。Apache 将为您创建会话,您不必在每次加载文件时重新进行身份验证。

我建议您安装带有 firebug 插件的 Firefox,然后激活“网络”面板。这将为您提供有关浏览器正在执行的操作的宝贵见解。

答案3

是否有必要通过 Kerberos 保护您的 dojo 库?如果不需要,您可以使用另一个别名来提供该文件,而不受 Kerberos 的保护。这当然适用于任何其他静态文件。

答案4

如果确实是 DNS 导致了问题而不是 Kerberos 身份验证本身,为什么不通过将该地址添加到 hosts 文件中来绕过它呢?

相关内容