Kerberos 高可用性故障转移,Apache Mod_auth_kerb,使用 Kerberos 从属服务器速度很慢

Kerberos 高可用性故障转移,Apache Mod_auth_kerb,使用 Kerberos 从属服务器速度很慢

我们在 Apache 内部托管我们自己的 Redmine rails Web 应用程序,使用 Mod_auth_kerb 和我们的内部 Kerberos 进行身份验证。

我们有 2 个内部 Kerberos 服务器 KDC1 和 KDC2。KDC1 是主服务器。KDC2 是 KDC1 的从服务器。

当 KDC1 工作时,我们没有遇到问题,我们 Apache 上带有 Passenger 设置的 Redmine 响应迅速。

Kerberos 服务器运行 Debian Lenny Redmine Apache2 服务器运行 Debian Squeeze

KDC1 最近由于一些硬件问题下线了。在此期间,Redmine 的每个页面加载都非常慢,每个页面加载大约需要 10 秒。Redmine 可以正常工作,通过名为 KDC2 的从属服务器进行 Kerberos 身份验证也可以正常工作,但速度非常慢。

每次加载 Redmine 页面时,Redmine Apache 系统都会开始寻找 KDC1,并最终使用 KDC2。此过程每次都需要几秒钟。

我尝试在 Redmine Apache 服务器的 /etc/krb5.conf 上使用以下选项和不同的值

[libdefaults]
  default_realm = DOMAIN.COM
  kdc_timeout = 1
  max_retries = 0

我尝试了不同的值,我运行了 tcpdump 来查看延迟在哪里,看看更改上述设置是否有所不同,但我没有看到 tcpdump 捕获或浏览器中的 Redmine 页面加载有任何差异。

我做错了吗?是否可以让我们的 Redmine Apache 系统更快地使用 KDC2,快到即使 KDC1 发生故障也不会明显变慢?

有哪些好的方法或最佳的方式来设置 Kerberos 以实现高可用性故障转移?

如果我无法加快使用从服务器的速度,那么我可能会尝试其他方法,例如,不使用从服务器,而是创建两个相同的 KDC1 服务器,并在发生故障或其他情况时使用心跳来故障转移 kdc1.domain.com 的 IP 地址。我还没有开始做这件事。

提前致谢。

相关内容