我很想知道在Apache或LightTPD或Nginx等网络服务器上使用HTTP Basic Auth的性能影响。我想瓶颈是服务器对文件进行身份验证用户的实际读数。在我看来,阅读文件以身份验证用户的成本与该文件中的用户数量成正比。

我的问题是:
1.是否有特定数量的用户通过文件开始急剧下降,还是相对于文件中的用户数量线性降低?
2.鉴于HTTP的无状态性质,如果用户使用HTTP Basic Auth通过一个请求对用户进行身份验证:
- 它是否简单地转发每个请求上的凭据,并且网络服务器必须每次分析密码文件,以确定这是否是有效用户的请求?
或者
- 在后续请求中获取它在HTTP标头中使用的令牌之类的东西,从而允许服务器避免再次解析密码文件?

提前致谢

有帮助吗?

解决方案

  1. 线性相对。我不会担心。 HTTP Basic Auth被证明是可扩展的。以Twitter API为例。它使用基本auth。

  2. “由于HTTP协议是无状态的,因此每个请求都将以相同的方式处理,即使它们来自同一客户端。也就是说,服务器请求的每个资源都必须再次提供身份验证凭据资源。幸运的是,浏览器会在此处处理详细信息,因此您只需要在每个浏览器会话中一次输入用户名和密码 - 也就是说,您可能必须在下次打开您的下一次打开时再次输入它浏览器并访问同一网站。”

详细信息 Apache Auth文档.

其他提示

我的经验仅是Apache 2.x。

  1. 是的。它将与默认身份验证提供程序(文件)线性。它用 ap_cfg_getline() 因此,这将是线性的(用户)。
  2. 是的。 mod_aaa每次都必须分析密码。您可以使用类似的东西 memcookie 用于基于cookie或基于令牌的身份验证。

无论有多少用户,在登录处进行一次文件的扩展都应该很好。我真的不会担心。将来,您可以使用适当的索引来开发数据库驱动的方法。我怀疑您将遇到的所有瓶颈开发一个网站,基本验证者不会在很长一段时间内成为其中之一 - 除非您的WebServer大大不足。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top