簡體   English   中英

Flask 套接字 - 無效 session lWmxdNRmai59bRfLAAAA(此錯誤的進一步發生將使用級別 INFO 進行記錄)

[英]Flask Socket - Invalid session lWmxdNRmai59bRfLAAAA (further occurrences of this error will be logged with level INFO)

我正在嘗試通過基本命令在 docker 中使用 flask socket.io。

當我運行 gunicorn 的單個 worker 時一切正常但是當我增加 worker 時,然后在客戶端它開始給出400 Bad Request並且在服務器日志上我看到 Invalid session lWmxdNRmai59bRfLAAAA(此錯誤的進一步發生將記錄級別信息)

這些是我正在使用gunicorn --worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 2 application:app -b 0.0.0.0:5000的命令

application.py文件是

from gevent import monkey monkey.patch_all()
from flask import Flask from flask_socketio import SocketIO from flask import session 
app = Flask(__name__) 
app.config.from_object("settings.BaseConfig") 
socket_app = SocketIO(
    app,
    cors_allowed_origins="*",
    message_queue=settings.get_evn("CACHE_QUEUE_URL"),
    async_mode="gevent", 
)
socket_app.init_app(app, cors_allowed_origins="*")

我將 redis 用於消息隊列,並已驗證消息隊列 url 是正確的

使用 aws 負載均衡器為請求提供服務

不支持多個 gunicorn worker,因為 Gunicorn 負載平衡算法與 Socket.IO 要求不兼容。

文檔中:

由於gunicorn使用的負載均衡算法有限,在使用web這台服務器時,不可能使用多個worker進程。 因此,上面的所有示例都包含 -w 1 選項。

在 gunicorn 中使用多個工作進程的解決方法是啟動多個單工作進程實例並將它們置於功能更強大的負載均衡器(例如 nginx)之后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM