After seeing
Improving snac Performance with Nginx Proxy Cache from @itnotes@snac.it-notes.dragas.net via
https://snac.it-notes.dragas.net/itnotes/p/1738139676.258050https://it-notes.dragas.net/2025/01/29/improving-snac-performance-with-nginx-proxy-cache/ I decided to prematurely optimize and adjust this for my apache2 httpd server in debian where I run snac.
I've never done any caching etc before so it was a nice adventure to learn something new. The documentation helped and in the end it wasn't very hard. I learned a bit about some http headers and regex on the way too.
Basically it works like this:
Enable the relevant modules:
a2enmod expires cache cache_disk
Be sure "htcacheclean" is running to clean up old disk cache. (under debian see /etc/default/apache-htcacheclean or else the relevant systemd service)
Then add to the snac virtualhost config:
CacheRoot /var/cache/apache2/mod_cache_disk
CacheQuickHandler off
CacheLock on
#Optional while testing stuff;
CacheDetailHeader on
#My Instance ist not at the root, but under "/social"; so this needs to be adapted for most I guess:
<LocationMatch "^/social/[^/]+/s">
CacheEnable disk
ExpiresActive On
ExpiresDefault "access plus 30 days"
</LocationMatch>
This will use the disk cache to cache everything under the /s/ Path, same as the original ngnix tutorial, Utilizing the mod_expires to generate the appropriate cache headers (for lazy ones like me), In this case caching it for 30 days.
Further reading and all options explained under
https://httpd.apache.org/docs/2.4/caching.html ff
Thanks for the initial tutorial @itnotes@snac.it-notes.dragas.net
#Fediverse #Hosting #ITNotes #Networking #apache2 #httpd #Ownyourdata #Server #Snac #Snac2 #Social #Tipsandtricks #Tutorial #Web #Debian