我有一个linux机器设置,可以使用samba/winbind使用Active对用户进行身份验证。
然后设置Apache来使用它对用户进行身份验证。这是使用以下方法完成的:
<IfModule mod_authnz_external.c>
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
</IfModule>但是,页面请求在没有auth的情况下花费不到1秒,现在需要>6秒。查看日志,/var/log/samba/log.winbindd没有显示任何错误,但是每个页面加载似乎都需要大量的身份验证请求。基本上,每个加载的资源似乎都有一个身份验证,例如,对于每个css文件。
在/etc/samba/smb.conf中,我尝试使用一些设置,如winbind cache time = 300和winbind offline logon = yes。我还试图将idmap后端从tdb更改为广告。
在页面加载期间,winbindd的cpu使用率非常高,约为50-60%,而其他进程似乎没有超过10-20%。
我是否错过了一些可以加快速度的配置,或者是否有更好的方法来解决这个问题(比如使用mod_authnz_external以外的东西)?
发布于 2017-09-04 09:30:13
在使用mod_authnz_external时,我仍然找不到提高性能的方法。但是,更改为另一个apache模块,mod_authnz_ldap消除了性能问题。因此,惟一的缺点是ldap配置对系统和apache都是重复的。
发布于 2018-11-02 11:20:29
在类似的设置中,使用Ubuntu18.04作为客户机,Samba 4.7.8作为服务器,使用pwauth进行身份验证需要200 ms左右,这对于SVN操作来说是不可接受的,因为一个简单的存储库清单使用了相当多的请求。
使用以下设置将authn_socache作为身份验证缓存(例如包括authnz_external和authz_unixgroup)加载,可以提高性能:
<Location /svn>
DAV svn
SVNParentPath /var/local/svn/
SVNListParentPath on
AuthType Basic
AuthName "private area"
AuthBasicProvider socache external
AuthExternal pwauth
AuthExternalProvideCache on
AuthnCacheProvideFor external
AuthnCacheTimeout 300
Require unix-group svngroup
</Location>AuthExternalProvideCache On很重要,否则authnz_external将不会缓存登录。
https://serverfault.com/questions/871663
复制相似问题