个人理解,你的proxy参数在不同location中设置,按你的文件类型区分,然后控制请求在openresty rewrite
阶段控制类型,这样的问题,可能是有30x跳转,不知道能否接受
Louis He <louis....@gmail.com> 於 2019年12月10日 週二 下午7:56寫道:
>
> 测试了一下看来是不行的。这两个参数不支持变量
>
> proxy_cache_valid
> proxy_ignore_headers
>
> 在 2019年12月10日星期二 UTC+8下午3:27:22,Louis He写道:
>>
>>
>> 这样吗
>>
>> local s = ngx.re.match(uri,xxx)
>> local p = ngx.re.match(uri,xxx)
>>
>> if p then
>> ngx.var.proxy_pass = "http://production_upstream"
>>
>> ngx.var.proxy_cache_valid = "any 1d"
>>
>> proxy_cache_valid
>>
>> elseif s then
>> ngx.var.proxy_pass = "http://sandbox_upstream"
>> end
>>
>>
>> 在 2019年12月10日星期二 UTC+8上午10:07:56,saltfish写道:
>>>
>>> rewrite 阶段通配/ 然后根据url转发
>>>
>>> Louis He <louis...@gmail.com> 於 2019年12月10日 週二 上午12:24寫道:
>>> >
>>> > 也想实现这个东西,估计是不可能了、
>>> > set $status "any";
>>> > set $time "24h";
>>> > location / {
>>> >
>>> > proxy_cache_valid $status $time; //这样可以吗
>>> > proxy_cache_methods GET HEAD;
>>> > proxy_ignore_headers Cache-Control;
>>> >
>>> > }
>>> >
>>> > 在 2019年10月2日星期三 UTC+8下午6:03:44,t est写道:
>>> >>
>>> >> 最近在工作遇到一个问题,我们想要有选择的去缓存文件的类型,比如有时只想要缓存gif;或者只想缓存jpg.
>>> >> 于是我在nginx.conf中这样设置,想法是在lua中动态设置$proxy_rule
>>> >> set $proxy_rule "/";
>>> >> location $proxy_rule {
>>> >> XXXXXXX
>>> >> }
>>> >> 但是这样配置是错误的,location 应该是将“$proxy_rule”以正则方式解析了,而并没先将$proxy_rule值取出,然后进行location的正则解析。。。
>>> >>
>>> >> 以上,还往多多指导
>>> >
>>> > --
>>> > ---
>>> > 您收到此邮件是因为您订阅了Google网上论坛上的“openresty”群组。
>>> > 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到openresty+unsubscribe@googlegroups.com。
>>> > 要在网络上查看此讨论,请访问;