Caching needed, but makes kitty sad.

Jessica Hawkwell root at
Sat Jun 13 06:04:55 MSD 2009

Hai peeps! =^_^=

I have a system that stores a lot of images in a database.  What I'm 
running is an avatar site, and there are times when it seems everyone 
has decided to update their avatars all at the same time.  With nearly 
70% of our non-static image requests being little 32x32 icons for all 
the items that can be equipped, mass amounts of icon loads sometimes 
makes the site run about a second or two slower than usual.

I came to the obvious conclusion the best way to resolve this is to have 
nginx cache these little item icons.  Unfortunately, I have tried and 
failed to make this happen.  I think having nginx caching them would 
greatly improve performance since it would not have to access the 
back-end FastCGI servers to get the icons, they'd be local (which is 
always faster, so yay).  Below is the server block in question, I 
apologize in advance if the regex for /avatars/ causes any negative side 

        server {
                listen 80;
                root /usr/local/www/;

                location / {
                        gzip on;
                        gzip_types image/png image/gif image/jpeg 
text/plain text/javascript text/css;

                location /avatars/ {
/avatar.php?u=$1&show=$2&format=$3&$5 last;

                location /domains/ {
/domains.php?$1=$2&item=$3&$5 last;

                location /img_view/ {
                        set $img $document_uri;
                        rewrite ^/img_view/(avi|bod)-([0-9]+).png$ 
/img_view.php?subset=$1&img_id=$2 last;
                        set $droot /usr/local/www/caches/img_view/;

                        proxy_store $droot${img};

                        if (!-f $droot${img}) {
                                fastcgi_pass fcgi;

                        if (-f $droot${img}) {
                                expires max;

                location ~ \.php$ {
                        fastcgi_pass fcgi;

Through all of this with everything I have tried, the cache folder is 
still empty, which makes this little kitty sad.  Is there a way to make 
nginx cache images from just that one script?

Tanks, Jessica. =^_^=

Owner, Varus Online
Member Support: 530 383 3059

--- Useful Links ---
Frequently Asked Questions:
Newbie Guide:
Useful Tips:

When taking over the world, use zombie squirrels.
Nobody will ever see it coming.  >.>

More information about the nginx mailing list