![有没有办法在 post 请求中将 memcached 与 nginx 结合使用?](https://linux22.com/image/587257/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%9C%A8%20post%20%E8%AF%B7%E6%B1%82%E4%B8%AD%E5%B0%86%20memcached%20%E4%B8%8E%20nginx%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
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 请求应该只读取数据,而不进行任何写入 - 因此,它可以轻松被缓存,因为每次读取的结果都是相同的。