add expire rules mimicking that of the apache config
These rules are closer to the expire logic defined for apache, and also use a none-capturing regex which will be (unnoticably) faster. Added a comment as to why there is no default expire header defined.
This commit is contained in:
parent
703a75c229
commit
54d4437c2f
44
nginx.conf
44
nginx.conf
|
@ -101,24 +101,44 @@ http {
|
||||||
# Custom 404 page
|
# Custom 404 page
|
||||||
error_page 404 /404.html;
|
error_page 404 /404.html;
|
||||||
|
|
||||||
# Static assets
|
# No default expire rule. This config mirrors that of apache as outlined in the
|
||||||
location ~* ^.+\.(manifest|appcache)$ {
|
# html5-boilerplate .htaccess file. However, nginx applies rules by location, the apache rules
|
||||||
|
# are defined by type. A concequence of this difference is that if you use no file extension in
|
||||||
|
# the url and serve html, with apache you get an expire time of 0s, with nginx you'd get an
|
||||||
|
# expire header of one month in the future (if the default expire rule is 1 month).
|
||||||
|
# Therefore, do not use a default expire rule with nginx unless your site is completely static
|
||||||
|
|
||||||
|
# cache.appcache, your document html and data
|
||||||
|
location ~* \.(?:manifest|appcache|html|xml|json)$ {
|
||||||
expires -1;
|
expires -1;
|
||||||
access_log logs/static.log;
|
access_log logs/static.log;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set expires max on static file types (make sure you are using cache busting filenames or query params):
|
# Feed
|
||||||
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
|
location ~* \.(?:rss|atom)$ {
|
||||||
# This is pretty long expiry and assume your using
|
expires 1h;
|
||||||
# cachebusting with query params like
|
add_header Cache-Control "public";
|
||||||
# <script src="application.js?20110529">
|
}
|
||||||
#
|
|
||||||
# Just be careful if your using this on a frequently
|
|
||||||
# updated static site. You may want to crank this back
|
|
||||||
# to 5m which is 5 minutes.
|
|
||||||
expires 1M; # yes one month
|
|
||||||
|
|
||||||
|
# Favicon
|
||||||
|
location ~* \.ico$ {
|
||||||
|
expires 1w;
|
||||||
access_log off;
|
access_log off;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Media: images, video, audio, HTC, WebFonts
|
||||||
|
location ~* \.(?:jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
|
||||||
|
expires 1M;
|
||||||
|
access_log off;
|
||||||
|
add_header Cache-Control "public";
|
||||||
|
}
|
||||||
|
|
||||||
|
# CSS and Javascript
|
||||||
|
location ~* \.(?:css|js)$ {
|
||||||
|
expires 1Y;
|
||||||
|
access_log off;
|
||||||
|
add_header Cache-Control "public";
|
||||||
}
|
}
|
||||||
|
|
||||||
# opt-in to the future
|
# opt-in to the future
|
||||||
|
|
Loading…
Reference in New Issue