nginix not servic static content as part of page
JohnSchulze
nginx-forum at nginx.us
Fri Feb 5 14:08:20 MSK 2010
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
More information about the nginx
mailing list