nginix not servic static content as part of page

Reinis Rozitis r at roze.lv
Fri Feb 5 14:31:43 MSK 2010


As people have pointed out if() is bad choice:

Try this instead:


   location / {
        try_files $uri @fallback;
    }

    location @fallback {
        proxy_pass  http://mycluster$request_uri;
    }



----- Original Message ----- 
From: "JohnSchulze" <nginx-forum at nginx.us>
To: <nginx at nginx.org>
Sent: Friday, February 05, 2010 1:08 PM
Subject: nginix not servic static content as part of page


>I have a Mongrel cluster behind nginx and am trying to get nginx to serve up the static contents of my site with the following rule 
>(RESTful URLs):
>
>    location / {
>        if (-f $request_filename) {
>            break;
>        }
>
>        if (!-f $request_filename) {
>            proxy_pass http://mycluster$request_uri;
>            break;
>        }
>    }
>
> When I load up a page which has images in it (referenced from /public/images) the requests for the images seem to hang forever 
> (same goes for JS, CSS, etc). However, if I go straight to an image URL (right click, "view image") all the files are served as 
> expected - and they continue to be served if i turn the Mongrel cluster off. So nginx can clearly see and access all the static 
> files. Also, when looking in firebug while loading a page I can see that double requests are being made for some of the files (not 
> always the same ones!) and that sometimes one of them is served correctly while the other request will hang indefinitely. Latency 
> for content that does get served is also much worse than when pointing straight to a Mongrel instance.
>
> If I change the rule to redirect everything to my cluster the statics are all served fine - exactly the same result as if I go to 
> one of the Mongrels directly - and performce improves massively:
>
>    location / {
>        proxy_pass http://mycluster$request_uri;
>    }
>
> That's of course not an option as I very much want nginix to serve this content instead. Another strange thing is it seems the 
> files do actually get sent; for example I can see the images in firebug when hovering over the never completing requests. I'm 
> fairly new to nginix so it's likely I've missed something obvious - I've tried my best to find the answer on my own but I really 
> could do with some help!
>
> Many thanks,
>
> JS
>
> P.S. Could it be that nginx and Mongrel are conflicting over who should serve the file?
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,50870,50870#msg-50870
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
> 




More information about the nginx mailing list