用于缓存磁盘响应的wsgi中间件。
wsgi_cache的Python项目详细描述
Date: | 2010-01-05 |
---|---|
Authors: | Nathan R. Yergler <nathan@yergler.net> |
Copyright: | 2010, Nathan R. Yergler, Creative Commons; licensed to the public under the MIT License. |
wsgi_cache是一个提供磁盘的wsgi中间件 用于wsgi应用程序的缓存。有点粗糙 不灵活,有点像你爷爷。
wsgi_cache设计用于将对wsgi站点的请求缓存到 磁盘上的缓存目录。缓存目录将具有相同的 作为请求的目录布局(即,如果请求/foo/bar,则 foo目录将在缓存中创建,并存储bar。 在那里)。除了删除缓存文件之外,还有no缓存过期 从磁盘。这是一个特色。
安装
wsgi_cache可以作为python egg安装,使用easy_install:
$ easy_install wsgi_cache
配置
wsgi_缓存的配置通常使用粘贴部署完成。在 这种情况下,可以将其配置为筛选器:
[app:main] use = egg:my_wsgi_app#app filter-with = cache [filter:cache] use = egg:wsgi_cache#middleware cache_dir = ./cache
cache_dir是唯一必需的配置参数,并且 将被解释为相对于global_conf['here']。
^ {tt1}$还支持另外三个配置参数:
- 内容类型
- 指定为缓存资源提供服务时使用的内容类型;请参见 Limitations下面的详细信息。默认设置为 text/html.
- 缓存路径
- 以/开头的逗号分隔的路径列表 指定要缓存的路径。如果指定,则仅请求 以其中一个字符串开头的路径将被缓存。
- 目录索引
- 访问以/(类似于/monkeys/)结尾的路径时, wsgi_缓存需要创建一个特殊的文件名。默认情况下,这是 __index.html。所以在默认情况下,缓存页面/monkeys/ 保存到文件${path_to_cache}/monkeys/__index.html;如果我们 将目录索引设置为将保存到的dir_x。 ${path_to_cache}/monkeys/dirx.
行为
当请求进入时,wsgi_cache检查路径以确定 如果应该缓存它。带有querystring的请求是not 缓存,而不考虑cache_paths的使用。如果请求是 应该被缓存,wsgi_cache在缓存中查找页 如果可以的话,还可以提供那份。如果不可用,请求是 传递给应用程序,结果被保存并返回。
请注意,在许多情况下,您会希望利用wsgi_cache的 直接使用 前端web服务器(即,带有mod_rewrite的apache)。
开发
wsgi_cache可以使用buildout
$ python bootstrap.py $ ./bin/buildout
这将安装任何依赖项,并创建一个包装器 python脚本,可用于使用^{tt1}运行shell$ 在python路径上。
运行测试
wsgi_cache使用nose运行测试。你可以进行测试 跑步套房:
$ python setup.py nosetests
如果您使用buildout进行开发,nose将安装在 为您构建:
$ ./bin/python setup.py nosetests
限制
- wsgi_cache只存储响应体以允许 由更快的静态web服务器提供缓存文件。像这样的, 此时它只能返回单个内容类型。