Hello! 2014-04-03 1:37 GMT-07:00 zhifeng dai: > 最近在使用nginx和memcached,以及大大您写的memc-nginx-module、srcache-nginx-module。使用测试中发现memcached一直无法缓存gzip后的js页面,使用curl默认访问时memcached可以缓存(不压缩)。 > 现在的小弟有以下几个疑问,希望大大给予指导: > 1.memcached能否缓存gzip后的文件? > 2.如果可以缓存,nginx配置中应该如何配置? > 3.顺便问问大大nginx+memcached缓存的规则有哪些? > ngx_srcache 默认会跳过带有 Content-Encoding 响应头的响应(即不会缓存 gzip 压缩后的响应)。你可以通过配置 srcache_ignore_content_encoding on 强制缓存这样的响应: https://github.com/agentzh/srcache-nginx-module#srcache_ignore_content_encoding 当然,在此种配置下,你需要启用标准的 ngx_gunzip_filter 模块,以便为那些不期望 gzip 压缩的 HTTP 客户端自动解压缩: http://nginx.org/en/docs/http/ngx_http_gunzip_module.html 当然,还有一种选择是禁用你的 proxy 后端服务器的 gzip 压缩(假如你使用了 ngx_proxy 模块在 nginx 一侧生成响应的话),即配置 proxy_set_header Accept-Encoding ""; 这在文档里也有交待。 同时抄送给 openresty 中文邮件列表:https://groups.google.com/group/openresty 建议你也加入此列表并在那里讨论这样的问题。谢谢合作! Regards, -agentzh
Hello! 2014-04-03 19:39 GMT-07:00 landequlan: > 问题: > memcached会缓存带参数的网页,例如:http://passport.baidu.com/passApi/js/uni_login_wrapper.js?cdnversion=1396578065007&_=1396578064879 > 不知道怎么配置可以限制这种类型的文件缓存。 可以这样配置: srcache_fetch_skip $args; srcache_store_skip $args; 建议仔细阅读 ngx_srcache 模块的官方文档,以节约时间: https://github.com/agentzh/srcache-nginx-module#readme 另外,建议不要“绑架”不相干的邮件主题。提醒一下当前的主题是“nginx+memcached无法缓存gzip后的文件”。 Regards, -agentzh