如何解决Nginx - 使用 proxy_cache_bypass 传递 proxy_cache 值
我在 proxy_cache_path
块中有多个 http
指令,我想将 proxy_cache
变量的值传递给 lua 模块。但是,我不想多次定义路由(/tmp/cache/BackendA 或 /tmp/cache/BackendB 等)。我宁愿将它存储在一个变量中。
我的配置片段:
http {
proxy_cache_path /tmp/cache/BackendA keys_zone=BACKEND_A_PROXYCACHE:50m max_size=1g use_temp_path=off inactive=20m;
proxy_cache_path /tmp/cache/BackendB keys_zone=BACKEND_B_PROXYCACHE:100m max_size=2g use_temp_path=off inactive=30m;
# ...
server {
# ...
location =/BackendA/ServiceA {
# ...
proxy_cache BACKEND_A_PROXYCACHE;
# set $cache_folder_path "/tmp/cache/BackendA";
set $cache_folder_path $proxy_cache;
proxy_cache_bypass $cache_folder_path;
}
location =/BackendB/ServiceB {
# ...
proxy_cache BACKEND_B_PROXYCACHE;
# set $cache_folder_path "/tmp/cache/BackendA";
set $cache_folder_path $proxy_cache;
proxy_cache_bypass $cache_folder_path;
}
}
}
如果我尝试使用 set $cache_folder_path $proxy_cache;
命令,则无法启动 nginx 服务器。
错误信息:
nginx: [emerg] unknown "proxy_cache" variable
我正在寻找比评论部分更优雅的解决方案:
set $cache_folder_path "/tmp/cache/BackendA";
问题是我现在该怎么办?将不胜感激任何帮助。
解决方法
如果你使用Linux并且支持apt-get,用于缓存模块
apt-get install nginx-extras
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。