我正在用 Flask 编写一个简单的 Web 应用程序,并将使用 Gunicorn 运行它。我想知道如何使用 Varnish 缓存此应用程序返回的页面。
按照这篇文章,我已经能够将 Varnish 与同样在 Gunicorn 上运行的 Django 应用程序一起使用。说明包括使用一个额外的应用程序和一些中间件,但我不确定如何使用 Flask 来完成。
感谢您的建议!
基本上,您所要做的就是在渲染 Flask 视图时返回适当的缓存标头。
例如,这是一个简单的视图,它呈现一个robots.txt
文件,并指定它应该被缓存 30 天:
from flask import Flask, make_response, render_template
app = Flask(__name__)
@app.route('/robots.txt')
def robots():
response = make_response(render_template('robots.txt'))
response.headers['Cache-Control'] = 'max-age=%d' % 60 * 60 * 24 * 30
return response