首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何配置NGINX不缓存特定URL?

如何配置NGINX不缓存特定URL?
EN

Stack Overflow用户
提问于 2016-07-26 23:04:24
回答 3查看 1.6K关注 0票数 1

我有一个NGINX服务器作为前端缓存服务器,我想在特定的urls上禁用缓存。

NGINX的配置如下:

代码语言:javascript
运行
复制
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m  inactive=120m max_size=1000m;
proxy_cache_key "$scheme$request_method$host$request_uri$is_args$args";

server {
  listen       10.0.0.45:80 default_server;
  server_name  proxy2.jjd;
  include      /etc/nginx/default.d/*.conf;
  location / {

    client_max_body_size 20m;
    proxy_cache my_zone;
    proxy_cache_bypass  $http_cache_control;

    proxy_no_cache $http_pragma $http_authorization $cookie_nocache $arg_nocache;

    add_header      X-Proxy-Cache-NGINX $upstream_cache_status;
    add_header      X-Real-IP $remote_addr;
    add_header      Cache-Control "public";
    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header      X-Forwarded-Proto https;
    proxy_set_header      X-Forwarded-Port 443;
    proxy_set_header      Host $host;

    proxy_pass            http://127.0.0.1:8080;
    proxy_read_timeout    90;
    proxy_connect_timeout 90;
    proxy_redirect        off;
  }
}
EN

回答 3

Stack Overflow用户

发布于 2019-03-30 23:55:02

添加以下位置以避免url:

代码语言:javascript
运行
复制
location ^~ /your-url/ {
    add_header            X-Real-IP $remote_addr;

    proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header      X-Forwarded-Proto https;
    proxy_set_header      X-Forwarded-Port 443;
    proxy_set_header      Host $host;

    proxy_pass            http://127.0.0.1:8080;
    proxy_read_timeout    90;
    proxy_connect_timeout 90;
    proxy_redirect        off;
}

它只是将这个位置分配给代理,而不是为它启用缓存。

票数 0
EN

Stack Overflow用户

发布于 2021-04-28 17:15:08

据我所知,您只需要一个内部只有一个字符串proxy_cache off;的嵌套location就可以禁用对嵌套URL的缓存。如下所示:

代码语言:javascript
运行
复制
location / {
    proxy_cache my_zone;
    proxy_cache_bypass  $http_cache_control;
    // other stuff related to proxying or other processing
    location /do/not/cache/this/url/ {
        proxy_cache off;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-07-27 10:10:46

您可以仅为禁用缓存指定location do proxy_pass only

位置/将/不/缓存{ proxy_pass http://127.0.0.1:8080;..set_header ..}

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38593507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档