2.1,我也在使用亚马逊弹性缓存服务(它是一个 memcached 服务器)
Nginx 有一个巧妙的功能,它使用 memcached 来处理常见的 get 请求,但如果是 post 请求则不使用 memcached,有没有办法禁用此功能?
这是我的配置;
location /{
set_md5 $memcached_key "http://$server_name$uri";
memcached_pass cacheviews.bsd7na.0001.use1.cache.amazonaws.com:11211;
default_type text/html;
add_header Content-Encoding gzip;
error_page 405 404 = @fallback;
}
location @fallback{
internal;
gzip_types text/css text/plain application/atom+xml application/x-javascript;
gzip_vary on;
# stuff to do a normal render of the page
}
答案1
当您收到 POST 请求时,它应该会更改后端存储(数据库)中的某些对象,这取决于应用程序的逻辑。因此,NGINX 根本不知道您的应用程序中实际上必须做什么,并且根本不会尝试缓存任何 POST 请求,而是将它们直接重定向到您的后端。
同时,GET 请求应该只读取数据,而不进行任何写入 - 因此,它可以轻松被缓存,因为每次读取的结果都是相同的。