NGINX中使用UWSGI Cache实现Flash缓存

myss37ts  于 2022-12-11  发布在  Nginx
关注(0)|答案(1)|浏览(212)

UWSGI通过UNIX套接字连接到 flask 应用程序:

NGINX(监听端口80)<->UWSGI(每个UNIX插槽的列表)<->FLASK-APP

我已经初始化了一个uwsgi缓存来处理全局数据。我想用python包flak-caching来处理该高速缓存。
我正在尝试使用正确的缓存地址初始化缓存示例。似乎有问题。我认为app.run()的参数与uwsgi无关。
如果我正在设置一个缓存条目,它总是返回None:

app.route("/")
def test():
    cache.set("test", "OK", timeout=0)
    a = cache.get("test")
    return a

主文件.py

from flask import Flask
from flask_caching import Cache

app = Flask(__name__)
# Check Configuring Flask-Caching section for more details
cache = Cache(app, config={'CACHE_TYPE': 'uwsgi', 'CACHE_UWSGI_NAME':'mycache@localhost'})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

文件名:

[uwsgi]
module = main
callable = app
cache2 = name=mycache,items=100

nginx配置文件

server {
    listen 80;
    location / {
        try_files $uri @app;
    }
    location @app {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi.sock;
    }
    location /static {
        alias /app/testapp/static;
    }
}

我正在使用来自https://github.com/tiangolo/uwsgi-nginx-flask-docker的Docker构建。应用程序正在工作,期待该高速缓存。

enxuqcxy

enxuqcxy1#

注意使用为NGINX生成多个进程。每个进程处理自己的缓存。如果没有额外的层,就不可能从不同的nginx进程访问缓存。
这个答案是由CC BY-SA 4.0下的OP ewro发布的问题Flask-Caching use UWSGI cache with NGINX的edit

相关问题