use proxy_store,<br>if the file update on backend, then the nginx proxy can not auto update file<br><br><div><span class="gmail_quote">2007/7/18, Igor Sysoev &lt;<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>&gt;:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On Wed, Jul 18, 2007 at 12:03:17AM +0200, Janko Hauser wrote:<br><br>&gt;<br>&gt; Am 17.07.2007
 um 15:53 schrieb Janko Hauser:<br>&gt;<br>&gt; &gt;Am 17.07.2007 um 15:16 schrieb Igor Sysoev:<br>&gt; &gt;<br>&gt; &gt;&gt;On Tue, Jul 17, 2007 at 02:43:17PM +0200, Janko Hauser wrote:<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;&gt;Am 
17.07.2007 um 12:44 schrieb Igor Sysoev:<br>&gt; &gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;proxy_store is not cache, it&#39;s rather mirror on demand:<br>&gt; &gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;location /images/ {<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /data/www;
<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; error_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 404 = /fetch$uri;<br>&gt; &gt;&gt;&gt;&gt;}<br>&gt; &gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;location /fetch {<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; internal;<br>&gt; &gt;&gt;&gt;&gt;
<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; proxy_pass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://backend">http://backend</a>;<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; proxy_store&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; proxy_store_access&nbsp;&nbsp; user:rw&nbsp;&nbsp;group:rw&nbsp;&nbsp;all:r;<br>
&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; proxy_temp_path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/data/temp;<br>&gt; &gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;&nbsp;&nbsp; alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/data/www;<br>&gt; &gt;&gt;&gt;&gt;}<br>&gt; &gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;if file is not found, then it will be fetched from backend and
<br>&gt; &gt;&gt;&gt;&gt;stored<br>&gt; &gt;&gt;&gt;&gt;in &#39;root/alias&#39; or in path specified explicitly:<br>&gt; &gt;&gt;&gt;&gt;<br>&gt; &gt;&gt;&gt;&gt;proxy_store&nbsp;&nbsp; /data/www$original_uri;<br>&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;Ah, that makes things clearer. Is it possible to steer this from the<br>&gt; &gt;&gt;&gt;backend by setting headers in the response or some other means? But<br>&gt; &gt;&gt;&gt;this alone will help a lot, thanks.
<br>&gt; &gt;&gt;<br>&gt; &gt;&gt;proxy_store&nbsp;&nbsp; /data/www$http_upstream_some_header;<br>&gt; &gt;<br>&gt; &gt;Ah, great, first I thought, this would set only the location, but<br>&gt; &gt;if the backend sets a &quot;wrong&quot; path, the backend can actually
<br>&gt; &gt;decide, if its content should be stored. The flexibility of nginx<br>&gt; &gt;is amazing.<br>&gt;<br>&gt; Hm, thinking about this some more, the setting of a wrong path would<br>&gt; nevertheless mean, that something is written everytime the page is
<br>&gt; called. It would be better to have some form of conditional,<br>&gt; preferable by the existence of a specific header, which can decide if<br>&gt; proxy_store directive is active, and the return value from the<br>
&gt; backend is stored.<br><br>proxy_set_header&nbsp;&nbsp;X-Store&nbsp;&nbsp; yes;<br><br><br>--<br>Igor Sysoev<br><a href="http://sysoev.ru/en/">http://sysoev.ru/en/</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>Best Regards
<br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>焦胜强<br>上海我要网络发展有限公司&nbsp;&nbsp;运维部&nbsp;&nbsp;&nbsp;&nbsp; <br>上海浦东新区峨山路91弄200号新鹏大厦2楼 邮编 200127 <br>Tel: +86(021)58815151-5160&nbsp;&nbsp;<br>Fax: +86(021)50904695<br>QQ: 34849502<br>MSN: <a href="mailto:jsq_yy@hotmail.com">
jsq_yy@hotmail.com</a>&nbsp;&nbsp;<br>Email: <a href="mailto:jiaosq@mail.51.com">jiaosq@mail.51.com</a>&nbsp;&nbsp;&nbsp;&nbsp;<br>Visit us: <a href="http://www.51.com">http://www.51.com</a>