From fdd80eadcc2f147d0198d94b7b908764778184a2 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Mon, 29 Apr 2024 14:18:55 -0500 Subject: format line wrapping and fix escaped characters --- content/blog/2022-02-20-nginx-caching.md | 65 +++++++++++++++----------------- 1 file changed, 30 insertions(+), 35 deletions(-) (limited to 'content/blog/2022-02-20-nginx-caching.md') diff --git a/content/blog/2022-02-20-nginx-caching.md b/content/blog/2022-02-20-nginx-caching.md index 2df95e3..fc39b39 100644 --- a/content/blog/2022-02-20-nginx-caching.md +++ b/content/blog/2022-02-20-nginx-caching.md @@ -7,16 +7,15 @@ draft = false # Update Your Nginx Config to Cache Static Files -If you run a website on Nginx that serves static content (i.e., content -that is not dynamic and changing with interactions from the user), you -would likely benefit from caching that content on the client-side. If -you\'re used to Apache and looking for the Nginx equivalent, this post -should help. +If you run a website on Nginx that serves static content (i.e., content that is +not dynamic and changing with interactions from the user), you would likely +benefit from caching that content on the client-side. If you're used to Apache +and looking for the Nginx equivalent, this post should help. -Luckily, setting up the cache is as easy as identifying the file types -you want to cache and determining the expiration length. To include more -file types, simply use the bar separator (`|`) and type the -new file extension you want to include. +Luckily, setting up the cache is as easy as identifying the file types you want +to cache and determining the expiration length. To include more file types, +simply use the bar separator (`|`) and type the new file extension you want to +include. ``` config server { @@ -30,44 +29,40 @@ server { } ``` -I have seen some people who prefer to set `expires` as -`365d` or even `max`, but that is only for stable, -infrequently changing websites. As my site often changes (i.e., I\'m -never content with my website), I need to know that my readers are -seeing the new content without waiting too long. +I have seen some people who prefer to set `expires` as `365d` or even `max`, but +that is only for stable, infrequently changing websites. As my site often +changes (i.e., I'm never content with my website), I need to know that my +readers are seeing the new content without waiting too long. -So, I went ahead and set the expiration date at `30d`, which -is short enough to refresh for readers but long enough that -clients/browsers won\'t be re-requesting the static files too often, -hopefully resulting in faster loading times, as images should be the -only thing slowing down my site. +So, I went ahead and set the expiration date at `30d`, which is short enough to +refresh for readers but long enough that clients/browsers won't be +re-requesting the static files too often, hopefully resulting in faster loading +times, as images should be the only thing slowing down my site. # Testing Results To test my changes to the Nginx configuration, I used the [HTTP Header Live](https://addons.mozilla.org/en-US/firefox/addon/http-header-live/) -extension on my Gecko browser and used the sidebar to inspect the -headers of a recent image from my blog. +extension on my Gecko browser and used the sidebar to inspect the headers of a +recent image from my blog. -In the image below, you can see that the `Cache-Control` -header is now present and set to 2592000, which is 30 days represented -in seconds (30 days \_ 24 hours/day \_ 60 minutes/hour \*\* 60 -seconds/minute = 2,592,000 seconds). +In the image below, you can see that the `Cache-Control` header is now present +and set to 2592000, which is 30 days represented in seconds (30 days \_ 24 +hours/day \_ 60 minutes/hour ** 60 seconds/minute = 2,592,000 seconds). -The `Expires` field is now showing 22 March 2022, which is 30 -days from the day of this post, 20 February 2022. +The `Expires` field is now showing 22 March 2022, which is 30 days from the day +of this post, 20 February 2022. ![Image Headers](https://img.cleberg.net/blog/20220220-caching-static-content-with-nginx/image_headers.png) # Caveats -Remember that this caching system is **client-side**, which means that -content is only cached for as long as a client allows it. For example, -my browser purges all caches, data, etc. upon exit, so this caching -policy will only work as long as my browser remains open and running. +Remember that this caching system is **client-side**, which means that content +is only cached for as long as a client allows it. For example, my browser purges +all caches, data, etc. upon exit, so this caching policy will only work as long +as my browser remains open and running. -If you need to test updates to your site, you\'ll need to clear the -cache to see updates for any file extension you configured. This can -often be done with the `Shift + F5` or `Ctrl + F5` -key combinations in most browsers. +If you need to test updates to your site, you'll need to clear the cache to see +updates for any file extension you configured. This can often be done with the +`Shift + F5` or `Ctrl + F5` key combinations in most browsers. -- cgit v1.2.3-70-g09d2