python – 使用压缩数据填充memcached,直接从nginx提供
在python中,我生成复杂的静态页面.然后我将它们放入memcached中,以便下次它们被请求时,它们可以直接从Nginx服务(根本没有点击python) 这很有效,直到我意识到在Nginx中存储未压缩的html是多么低效.所以我尝试在存储之前手动gzip数据,并让Nginx直接返回(只是设置content-encoding:gzip),但是虽然Nginx的文档表明它是可能的,但我还是无法让它工作. 在我的测试中,我通过NPE在How do I gzip compress a string in Python?的答案让python用python填充缓存中的数据.我还将这些的memcached标志设置为1. 在此时没有其他更改,Nginx提供原始数据,在浏览器中显示为垃圾. 之后,我更改了该位置的Nginx设置,将memcached_gzip_flag字段设置为1,以便Nginx知道数据已经被gzip压缩,但是nginx仍然提供原始数据.我已经尝试了nginx设置的每个组合:gzip on和memcached_gzip_flag 1但是在所有情况下浏览器都显示原始数据(在第一次直接python命中之后);在某些情况下,firebug报告内容编码是gzip(但仍显示原始gzip数据),而在其他情况下,内容编码未设置. 总的来说,我的攻击计划是欺骗nginx使用正确的标头提供已经压缩的数据,以便浏览器解压缩它. 我在nginx 1.6& memcached 1.4.13 这是相关的nginx配置行,最初可以使用.第一次命中从python中获取数据,填充缓存,第二次命中直接来自memcached.
更新: 更新POST BOUNTY: 最佳答案
文档有点稀疏,但是如果我正确理解它:memcached_gzip_flag指定与缓存对象关联的标志中的哪些位指示内容已经被gzip压缩.您需要说出类似于:memcached_gzip_flag 1的内容,然后使用设置了匹配位的标志存储数据:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Nginx access_log默认刷新时间
- nginx – 使用symfony3提供远程静态文件
- ubuntu – 为什么这个IPv6 listen指令也不接受IPv4?
- nginx 反向代理 502 Bad Gateway
- ruby-on-rails – 如何配置nginx Unicorn以避免超时错误?
- 服务器端语言nginx webserver支持哪种语言
- amazon-web-services – Elastic Beanstalk Http重定向到
- iisreset命令详解
- python-在子目录nginx uwsgi上提供Flask应用
- Nginx“”try_files“指令中的参数数量无效…”用于PHP安全