2013-09-29 8 views
6

私はFlask login moduleを使用しています。これはサーバー上でセッションを作成して維持します。複数のサーバーでFlask-loginが動作する方法

サーバはセッションを維持するので、完全にステートレスではないと私は思う。アプリケーションに複数のサーバーがある場合、どのように動作しますか?要求が固執する必要がありますか(つまり、特定のセッションが特定のサーバーに後続の要求を行う必要があります)あなたが作った

+0

セッションはどこに保存されていますか?ある種のデータベースであれば、すべてのサーバが同じデータベースに接続している限り、大丈夫です。 –

答えて

10

この文は完全に正しくありません:

...作成し、サーバー上のセッションを維持しています。

Flask-Loginは、Flaskによって提供されるセッション機能を使用するため、セッションに保存されるデータは、設定されたセッション記憶メカニズムを使用してFlaskによって書き込まれます。

デフォルトでは、Flaskはユーザーセッションをクライアントに安全なCookieとして書き込みますが、サーバー上のセッションも可能です。たとえば、このは、サーバ側のRedisストアにセッションを書き込むようにFlaskを設定する方法を示しています。

ユーザーセッションがクライアント側のCookieに格納されている場合、複数のサーバーを持つことは問題ではないことは明らかです。 Cookieは各リクエストを処理するサーバーに送信されるため、すべて正常に動作します。

サーバーサイドのセッションでも同様に動作します。サーバー側のセッションは一意の識別子で記述され、この一意の識別子はクライアント側のCookieに格納されます。各要求にはセッションIDが付属し、FlaskはこのIDを使用してセッションデータをロードします。すべてのWebサーバーが同じユーザーセッション記憶域を使用するように構成すると、複数のサーバーが同じクライアントからの要求を問題なく処理できます。

+0

ありがとう!!本当に役に立ちました – user462455

関連する問題