nginx can not cache

Igor Sysoev is at rambler-co.ru
Wed May 20 12:56:33 MSD 2009


On Mon, May 18, 2009 at 02:36:15PM +0800, weichenqi wrote:

> Hi,
>    I want to cache static files as gif,jpg and so on .that my config files:
> 
> location *~*\.(jgp|gif|png|css|swf|html|htm)$ {
>         root /web/html/;
>         proxy_store on;
>         proxy_set_header Accept-Encoding '';
>         proxy_temp_path /web/tmp/;
>         proxy_store_access user:rw group:r all:r; 
>         if (!-f $request_filename)
>         {
>         proxy_pass http://localhost:81;
> }        
> }
>         location / {
>                proxy_redirect off;
>                proxy_set_header Host $host;
>                proxy_set_header X-Real-IP $remote_addr;
>                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>                client_max_body_size 50m;
>                client_body_buffer_size 256k;
>                proxy_connect_timeout 30;
>                proxy_send_timeout 30;
>                proxy_read_timeout 60;
>                proxy_buffer_size 4k;
>                proxy_buffers 4 32k;
>                proxy_busy_buffers_size 64k;
>                proxy_temp_file_write_size 64k;
>                proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
>                proxy_max_temp_file_size 128m;
>             
>                proxy_store off;
>           
>                    proxy_pass http://test/;
>           }
> }
> }
> now,it have problem,inthe proxy_temp_path /web/tmp/
> there is no files cache.why?thanks!

First,

-location *~*\.(jgp|gif|png|css|swf|html|htm)$ {
+location ~* \.(jgp|gif|png|css|swf|html?)$ {

Second, instead of 

   if (!-f $request_filename) {
       proxy_pass http://localhost:81;
   }        

you should use

location ~* \.(jgp|gif|png|css|swf|html?)$ {
        root /web/html/;
        try_files  $uri  @fetch;
}

location @fetch {
        proxy_pass http://localhost:81;
        proxy_set_header Accept-Encoding '';
        proxy_store on;
        proxy_store_access user:rw group:r all:r; 
        proxy_temp_path /web/tmp/;
        root /web/html/;
}


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list