2009-09-23 24 views
2

我很想知道在Apache或lighttpd或nginx等Web服務器上使用HTTP Basic Auth的性能影響。我想象的瓶頸是服務器實際讀取文件來驗證用戶身份。在我看來,讀取文件以驗證用戶的成本與該文件中的用戶數量成正比。HTTP基本認證,讀取密碼文件和性能

我的問題是:
1.是否有特定數量的用戶在哪個基本身份驗證通過文件開始大幅下降,或者它是相對於文件中的用戶數量線性?
2.鑑於http的無狀態性質,如果用戶已通過Web服務器在一個請求中使用HTTP基本身份驗證進行身份驗證:
- 是否僅在每個請求中轉發憑據,並且Web服務器必須每次解析密碼文件爲了確定這是否是來自有效用戶的請求?

- 在後續請求中獲取它在http標頭中使用的標記,從而允許服務器避免再次解析密碼文件?

在此先感謝

回答

3
  1. 線性相對。我不擔心。事實證明HTTP Basic Auth是可擴展的。以Twitter API爲例。它使用基本身份驗證。

  2. 「由於HTTP協議是無狀態的,每個請求將被以同樣的方式對待,即使他們是來自同一個客戶端。也就是說,每艘從服務器請求的資源將必須提供認證幸運的是,瀏覽器會在這裏處理這些細節,因此您只需在每個瀏覽器會話中輸入一次您的用戶名和密碼 - 也就是說,您可能必須再次鍵入它下一次你打開你的瀏覽器並訪問同一個網站。「在Apache Auth documentation

詳細信息。

+0

謝謝。 基本上我看着是一個Django後端運行在Apache2與mod_wsgi和lighttpd或nginx在前面。 它感覺如果安全媒體的身份驗證是由django處理的,因爲每個靜態媒體的每個請求都必須達到django,獲得身份驗證,然後傳遞迴nginx或lighttpd。 我只是想知道在lighttpd或nginx級別進行基本身份驗證會更便宜。這當然更簡單。 –

0

在登錄解析文件應一次規模相當好,不管有多少用戶存在。我真的不會爲此擔心。將來,您可以開發適當索引的數據庫驅動方法。我懷疑開發一個站點會遇到的所有瓶頸,基本身份驗證不會在很長一段時間內成爲其中一員 - 除非您的網站服務器性能不足。

1

我的經驗僅限於Apache 2.x。

  1. 是的。它將與默認身份驗證提供程序(文件)成線性關係。它使用ap_cfg_getline(),因此它將與行數(用戶)成線性關係。
  2. 是的。 mod_aaa每次都必須解析密碼。您可以使用類似MemCookie的cookie或基於令牌的身份驗證。