proxy_cookie_path

'proxy_cookie_path' 指令修改被代理响应中 Set-Cookie 头的 Path 属性。 — NGINX HTTP Core

proxy_cookie_path
httpserverlocation
语法proxy_cookie_path original_path new_path;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1-2

说明

'proxy_cookie_path' 指令用于 NGINX 配置中,当响应被代理到后端服务器时使用。其主要功能是调整来自被代理服务器的 Set-Cookie 头中的 'Path' 属性。这样可以确保 Cookie 仅在特定路径下发送到期望的 URL,从而在被代理服务器的 cookie 路径与 NGINX 服务器的 URL 结构不一致的情况下提高安全性和功能性。 该指令可以接受一个或两个参数。第一个参数是原始的 cookie 路径,通常可在响应的 Set-Cookie 头中找到。第二个参数是应该替换原始路径的新路径。如果只提供一个参数,则表示所有具有该原始路径的 cookie 都应替换为新的默认路径。当同时指定两个参数时,只有与原始路径完全匹配的 cookie 会受到影响。该指令可在多个上下文中生效,包括 'http'、'server' 和 'location',使其在不同配置作用域中具有灵活性。 'proxy_cookie_path' 指令的行为还支持为不同路径使用多条指令,允许对特定路径进行多次声明并具有自定义行为,从而对来自后端服务器的 cookie 如何在前端 NGINX 服务器的 URL 路径下被处理提供细粒度控制。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_cookie_path /myapp /;
}

确保原始路径与要修改的 headers 的 Path 属性匹配。

使用不正确的路径可能导致 cookies 无法发送到浏览器,从而影响用户会话。

过度使用此 directive 可能导致混淆,尤其是在不同路径被不当修改时。