有没有办法在 post 请求中将 memcached 与 nginx 结合使用?

有没有办法在 post 请求中将 memcached 与 nginx 结合使用?

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 请求应该只读取数据,而不进行任何写入 - 因此,它可以轻松被缓存,因为每次读取的结果都是相同的。

相关内容