fastcgi_cache_methods

fastcgi_cache_methods 指令指定哪些 HTTP 方法应由 FastCGI 缓存。 — NGINX HTTP Core

fastcgi_cache_methods
httpserverlocation
语法fastcgi_cache_methods GET | HEAD | POST | ...;
默认值GET
上下文http, server, location
模块NGINX HTTP Core
参数1+

说明

fastcgi_cache_methods 指令在 NGINX 配置中用于指定在使用 FastCGI 时应缓存哪些 HTTP 方法(例如 GET 或 POST)。默认情况下,NGINX 仅缓存对 GET 请求的响应,这适用于不经常变化并可以直接从缓存提供的页面。然而,在某些场景中,应用可能会对 POST 请求做出可受益于缓存的响应,以提高性能并减轻后端服务器负载。该指令允许管理员根据应用需求自定义缓存行为。 该指令接受一个或多个 HTTP 方法作为参数。例如,指定 "GET POST" 允许同时缓存 GET 和 POST 请求。必须考虑请求的性质及其关联的响应;并非所有 POST 请求都应被缓存,因为它们通常涉及状态更改。对这类请求的不当缓存可能导致应用行为不正确或向用户提供过时的内容。 在实现该指令时,可以将其放在 http、server 或 location 上下文中,从而根据所需控制的粒度实现灵活的缓存配置。如果指定的方法与应用的预期行为不一致,可能会无意中导致性能瓶颈或缓存失效的情况。

配置示例

location ~ \.php$ {
    fastcgi_pass   backend;
    fastcgi_cache  my_cache;
    fastcgi_cache_methods GET POST;
}

在缓存 POST 响应时要小心,因为它们可能会更改应用程序状态。

请考虑在响应中缓存敏感数据的影响,因为这可能导致安全问题。

确保 backend 能够适当地处理已缓存的 POST 响应。如有必要,使用单独的 cache keys。