Ngx 反向代理禁用缓存

反向代理中禁用缓存并允许传输 cookies、headers 等其他参数到源地址

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;

        # 禁止缓存
        proxy_cache_bypass $http_cache_control;
        proxy_no_cache $http_pragma $http_authorization;
        proxy_cache off;

        # 允许传输 cookies、headers 等其他参数到源地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}
  • proxy_cache_bypass 指令根据客户端请求中的 Cache-Control 头信息来判断是否绕过缓存。如果客户端请求中包含 Cache-Control: no-cache,则绕过缓存。

  • proxy_no_cache 指令根据客户端请求中的 Pragma 头信息和 Authorization 头信息来判断是否不使用缓存。

  • proxy_cache 指令用于完全禁用代理服务器上的缓存功能。

  • proxy_set_header 指令用于设置需要传输到源地址的 headers。这里设置了 Host、X-Real-IP、X-Forwarded-For、X-Forwarded-Proto、Upgrade 和 Connection 等头信息

通过这些指令的组合,可以在 Nginx 反向代理中禁用缓存并允许传输 cookies、headers 等其他参数到源地址

Last updated