質問

ApacheやLightTPD、NginxなどのWebサーバーでHTTP Basic Authを使用することのパフォーマンスの影響は何であるかを知りたいと思います。ボトルネックは、ユーザーを認証するためのサーバーによるファイルの実際の読み取りだと思います。また、ユーザーを認証するためにファイルを読み取るコストは、そのファイルのユーザーの数に比例しているように思えます。

私が持っている質問は次のとおりです。
1.ファイルを介した基本的な認証が劇的に落ち始めた特定の数のユーザーはありますか、それともファイル内のユーザーの数に対して線形に比べて直線的ですか?
2. HTTPのステートレスの性質を考えると、1つのリクエストでWebサーバーによってHTTP Basic Authを使用してユーザーが認証されている場合:
- すべての要求で資格情報を単純に転送するだけで、Webサーバーは、これが有効なユーザーからのリクエストであるかどうかを判断するために毎回パスワードファイルを解析する必要がありますか?
また
- 後続の要求でHTTPヘッダーで使用するトークンのようなものを取得し、サーバーがパスワードファイルを再度解析しないようにしますか?

前もって感謝します

役に立ちましたか?

解決

  1. 線形相対。心配しません。 HTTP Basic Authはスケーラブルであることが証明されています。例としてTwitter APIを使用するだけです。基本的な認証を使用します。

  2. 「HTTPプロトコルはステートレスであるため、各リクエストは同じクライアントからのものであっても、同じ方法で扱われます。つまり、サーバーから要求されるすべてのリソースは、受信するために認証資格情報を再度提供する必要があります。幸いなことに、ブラウザはここで詳細を処理します。そのため、ブラウザセッションごとにユーザー名とパスワードを1回だけ入力する必要があります。つまり、次回開くときに再度入力する必要がある場合があります。ブラウザと同じWebサイトにアクセスしてください。」

の詳細情報 Apache Authドキュメント.

他のヒント

私の経験はApache 2.xのみです。

  1. はい。デフォルトの認証プロバイダー(ファイル)で線形になります。それは使用しています ap_cfg_getline() したがって、線形(ユーザー)から線形になります。
  2. はい。 MOD_AAAは、毎回パスワードを解析する必要があります。のようなものを使用できます memcookie CookieまたはTokenベースの認証用。

ログオンでファイルを一度解析することは、ユーザーが何人かにかかわらず、かなりうまくスケーリングする必要があります。私は本当にそれについて心配しません。将来的には、適切なインデックス作成でデータベース駆動型アプローチを開発できます。あなたがサイトの開発に出くわすすべてのボトルネックがあると思います。基本的な認証は、あなたのウェブサーバーが非常に不十分でない限り、非常に長い間それらの1つになることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top