<div dir="ltr"><div><div><div>Hi,<br><br></div>Is there some way to achieve this? I want to pass requests to backend based on cache status condition.<br><br></div>Thanks,<br></div>Makailol<br></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Wed, Mar 19, 2014 at 7:45 PM, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello!<br>
<div class=""><br>
On Wed, Mar 19, 2014 at 03:30:03PM +0530, Makailol Charls wrote:<br>
<br>
> One more thing I would like to know, would it be possible to proxy_pass<br>
> request conditionally based on $upstream_cache_status ?<br>
><br>
> For example here we set request header with proxy_set_header Cache-Status<br>
> $upstream_cache_status; instead we can use condition like below,<br>
><br>
> if ($upstream_cache_status = "BYPASS") {<br>
>     proxy_pass <a href="http://someIP" target="_blank">http://someIP</a>;<br>
> }<br>
><br>
> if ($upstream_cache_status = "MISS") {<br>
>     proxy_pass <a href="http://anotherIP" target="_blank">http://anotherIP</a>;<br>
> }<br>
><br>
> I tried this but could not find this working. I can set request header for<br>
> backend with proxy_set_header but can not use this variable conditionally.<br>
<br>
</div>That's expected, as cache status isn't known at the rewrite phase<br>
when "if" directives are executed.  It's not even known if a<br>
request will be proxied at all.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</div></div></blockquote></div><br></div>