問題タブ [flask-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flask - Kubernetes 上の PGadmin4: ELB を使用するとセッションが無効になる
PGAdmin4 に奇妙な問題があります。
私のセットアップ
pgadmin
kubernetes
イメージを使用して4.1 をデプロイしchorss/docker-pgadmin4
ます。トラブルシューティングを簡素化する 1 つの POD のみ。Nginx ingress controller
クラスターのリバース プロキシとして。Classic ELB
クラスタの受信トラフィックをロード バランシングします。
ELB <=> NGINX <=> PGADMIN
DNS の観点からは、pgadmin のホスト名は ELB に対する CNAME です。
問題
アプリケーションは正しく到達可能であり、ユーザーはログインでき、すべてが正常に機能します。問題は、数分 (およそ 2 ~ 3 分) 後にセッションが無効になり、ユーザーが再度ログインするように要求されることです。これは、pgadmin が積極的に使用されているかどうかに関係なく発生します。
数え切れないほどのトラブルシューティングを行った結果、ELB の CNAME の DNS 解決が別の IP アドレスに切り替わったときに問題が発生することがわかりました。
実際、私は試しました:
- のノードポートに直接接続することにより、ポッドに直接接続
k8s service
=> セッションは期限切れになりません。 - (ELB をバイパスして) 直接接続
nginx
=> セッションは期限切れになりません。 - hostsファイルでELBのIPアドレスの1つをマッピング=>セッションは期限切れになりません。
上記のテストを考えると、Flask アプリ (PGAdmin4 は明らかに Python Flask アプリケーションです) は、ホスト名のリモート アドレスが変更された後、Cookie が無効であると見なしていると結論付けます。
この問題を解決するのに役立つ Flask 開発者はいますか? 私が見逃しているかもしれない何かについての他のアイデアはありますか?
python-3.x - フラスコでは、Facebookメッセンジャーからセッション変数を取得できません
私はフラスコセッションを使用して、FBメッセンジャーに埋め込まれ、Pythonで実装されたバックエンドであるチャットボットでマルチユーザーの同時実行を実現しています。
以下はコードです:
session.get がフラスコで機能せず、値を取得できません。そのため、状態、年齢、性別、q_number、症状、前の状態、条件を他の関数に送信できません..これを克服するのを手伝ってください.