簡體   English   中英

防止燒瓶緩存

[英]PREVENT FLASK CACHING

我正在一個基於燒瓶的網站上工作,該網站基於:

  • nginx 作為網絡服務器
  • gunicorn 作為燒瓶的 WSGi,
  • 作為 gunicorn 的流程經理的主管,
  • 作為 Web 框架的 Flask,
  • mysql 和 sqlalchemy 作為數據庫層。

我做了一個簡單的頁面,它加載一個駐留在數據庫中的 json,並渲染它以生成一個網頁。 到目前為止沒有什么復雜的。 我遇到的問題是此網頁已緩存,並且我提供相同的內容,無論 json 是否更改。

我的頁面具有防止緩存的元標題,因此它不是瀏覽器。 我在 nginx 上配置了我的虛擬主機以防止緩存。 我使用 expire_all() 標記了 SqlAlchemy 上的會話以避免緩存在數據庫層上。

所以...我假設 Flask 正在緩存我的內容。 問題是我已經配置了我的燒瓶應用程序以防止緩存,但它似乎不起作用。

有沒有人遇到過同樣的問題?

提前致謝。

nginx: no cache

add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;

燒瓶應用程序:

from flask_caching import Cache
app = Flask(__name__)
app.debug = False
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
app.config['CACHE_TYPE'] = 'null'
cache = Cache(app)

我終於可以解決問題了

1 首先通過阻止工作人員捕獲內容:--max-requests=1 2 實施 gevent 以讓系統每秒接受更多請求,因為緩存內容被禁用,每個數據庫增加 3 個 sqlalchemy 最大連接數。 因為每次請求都會查詢數據內容

暫無
暫無

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

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