Front-end and back-end are separating. I find myself writing more web apps that either don't require a backend or outsource it to backend as a service (Baas).<p>It seems a bit silly to have to deploy and maintain hosted servers with Nginx just to serve static files. Preferably, I'm looking for a managed and "one command" distributed solution with uptime guarantees, something like Heroku, but for websites consisting of static files only.<p>I heard people were using S3 for this, but then recall reading that S3 wasn't recommended to host websites.<p>How do you guys host these files? Also, how do you deal with SSL and canonical URLs (no-www)?<p>Thank you.
Shouldn't be hard to setup a few instances (based on your traffic profile) to host the static files esp. in conjunction with a CDN like Cloudfront.<p>If you are using apache, you can use the following directive, EnableSendFile:<p><a href="http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile" rel="nofollow">http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfil...</a><p>Essentially it exploits the sendifle() sys. call results in transmitting files via the kernel.<p>Nginx should have the equivalent too.<p>Also look into related http settings like 'Expires' header to ensure it is set far into the future - i.e. maximizing caching on the client side. See more details here:<p><a href="http://developer.yahoo.com/performance/rules.html" rel="nofollow">http://developer.yahoo.com/performance/rules.html</a>
Use S3, and their website feature if youd like. If you expect moderate traffic use CloudFront. The CloudFront data transfer rates are cheaper than S3, IIRC.