gpt4 book ai didi

Nginx:如何防止在代理上缓存ajax请求?

转载 作者:行者123 更新时间:2023-12-01 23:23:08 24 4
gpt4 key购买 nike

我当前需要避免缓存 Ajax 请求,但要继续缓存结果页面。

我知道哪些指令不允许缓存:proxy_no_cache 或 proxy_cache_bypass但如何添加适当的声明。通过 if block ?声明应该是这样的?

$http_x_requested_with=XMLHttpRequest

谢谢;)

更新

就这样?

proxy_cache_bypass  $http_x_requested_with=XMLHttpRequest;
proxy_no_cache $http_x_requested_with=XMLHttpRequest;

最佳答案

在位置 block 内使用 if block 可能会很棘手( http://wiki.nginx.org/IfIsEvil )。所以最好放在位置 block 之外。但是,这样做会影响性能,因为所有请求都必须经过该 if block 。

最好使用映射指令( http://wiki.nginx.org/HttpMapModule )来设置变量,然后在代理指令中使用该变量。性能更好(在上面的链接中查看它是如何工作的)。

map $http_x_requested_with $nocache {
default 0;
XMLHttpRequest 1;
}

server {
...
proxy_cache_bypass $nocache;
proxy_no_cache $nocache;
}

关于Nginx:如何防止在代理上缓存ajax请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6083977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com