nginx and self-healing S3 static hosting

Ian M. Evans ianevans at digitalhit.com
Sat Jul 26 10:41:34 MSD 2008


I've recently been thinking about hosting some or all of our static 
files (especially images) on Amazon's S3. The recent multi-hour outage 
has many asking how to create redundancy or self-healing static serving. 
  On the nginx side my question is a two-parter:

1) Let's say you created a CNAME so that media.example.com would point 
to your S3 bucket. What would the location rewrite be so that a request 
for any static file would be redirected to media.example.com?

2) Is it possible to wrap this in an IF wrapper? My thinking is this: 
People write a php (python, whatever) script that checks for a 1 byte 
file in S3. Have it run in cron, say, every 5-10 minutes. If it can't 
grab the file (S3's down) it writes a file locally. If nginx detects 
that file it serves the static files locally. If, 5 minutes later, the 
script deletes the file, nginx goes back to serving from media.example.com

I know this isn't proper nginx syntax, but something like this:

if (-f /usr.local/nginx/htdocs/s3down) {
//serve static files locally
} else {
//serve static files from media.example.com
}

Thanks for any ideas.





More information about the nginx mailing list