From 4dea1975e2b5525b498197c95ed02a933a42fbf2 Mon Sep 17 00:00:00 2001 From: bunkerity Date: Thu, 12 Nov 2020 14:02:48 +0100 Subject: [PATCH] client caching --- confs/site/client-cache.conf | 4 ++++ confs/site/server.conf | 1 + entrypoint/defaults.sh | 7 ++++--- entrypoint/site-config.sh | 11 +++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 confs/site/client-cache.conf diff --git a/confs/site/client-cache.conf b/confs/site/client-cache.conf new file mode 100644 index 0000000..19e98d6 --- /dev/null +++ b/confs/site/client-cache.conf @@ -0,0 +1,4 @@ +location ~* \.(%CLIENT_CACHE_EXTENSIONS%)$ { + etag %CLIENT_CACHE_ETAG%; + add_header Cache-Control "%CLIENT_CACHE_CONTROL%"; +} diff --git a/confs/site/server.conf b/confs/site/server.conf index 67da2c5..469e95f 100644 --- a/confs/site/server.conf +++ b/confs/site/server.conf @@ -31,4 +31,5 @@ server { %COOKIE_FLAGS% %ERRORS% %USE_FAIL2BAN% + %USE_CLIENT_CACHE% } diff --git a/entrypoint/defaults.sh b/entrypoint/defaults.sh index 2a93b4c..49c80bb 100644 --- a/entrypoint/defaults.sh +++ b/entrypoint/defaults.sh @@ -4,13 +4,14 @@ HTTP_PORT="${HTTP_PORT-8080}" HTTPS_PORT="${HTTPS_PORT-8443}" MAX_CLIENT_SIZE="${MAX_CLIENT_SIZE-10m}" SERVER_TOKENS="${SERVER_TOKENS-off}" +USE_CLIENT_CACHE="${USE_CLIENT_CACHE-yes}" +CLIENT_CACHE_EXTENSIONS="${CLIENT_CACHE_EXTENSIONS-jpg|jpeg|png|bmp|ico|svg|tif|css|js|otf|ttf|eot|woff|woff2}" +CLIENT_CACHE_CONTROL="${CLIENT_CACHE_CONTROL-public, max-age=15552000}" +CLIENT_CACHE_ETAG="${CLIENT_CACHE_ETAG-on}" CACHE="${CACHE-max=1000 inactive=60s}" CACHE_ERRORS="${CACHE_ERRORS-on}" CACHE_USES="${CACHE_USES-1}" CACHE_VALID="${CACHE_VALID-60s}" -#CLIENT_CACHE="${CLIENT_CACHE}-css|gif|htm|html|ico|jpeg|jpg|js|png|svg|tif|tiff|eot|otf|ttf|woff|woff2" -#CLIENT_CACHE_EXPIRES="${CLIENT_CACHE_EXPIRES}-1d}" -#CLIENT_CACHE_CONTROL= USE_GZIP="${USE_GZIP-off}" GZIP_COMP_LEVEL="${GZIP_COMP_LEVEL-6}" GZIP_MIN_LENGTH="${GZIP_MIN_LENGTH-10240}" diff --git a/entrypoint/site-config.sh b/entrypoint/site-config.sh index 715fb25..2d74d35 100644 --- a/entrypoint/site-config.sh +++ b/entrypoint/site-config.sh @@ -36,6 +36,17 @@ else replace_in_file "${NGINX_PREFIX}server.conf" "%SERVER_CONF%" "include /server-confs/*.conf;" fi +# client caching +if [ "$USE_CLIENT_CACHE" = "yes" ] ; + replace_in_file "${NGINX_PREFIX}server.conf" "%USE_CLIENT_CACHE%" "include ${NGINX_PREFIX}client-cache.conf;" + replace_in_file "${NGINX_PREFIX}client-cache.conf" "%CLIENT_CACHE_EXTENSIONS%" "$CLIENT_CACHE_EXTENSIONS" + replace_in_file "${NGINX_PREFIX}client-cache.conf" "%CLIENT_CACHE_ETAG%" "$CLIENT_CACHE_ETAG" + replace_in_file "${NGINX_PREFIX}client-cache.conf" "%CLIENT_CACHE_CONTROL%" "$CLIENT_CACHE_CONTROL" + +else + replace_in_file "${NGINX_PREFIX}server.conf" "%USE_CLIENT_CACHE%" "" +fi + # remote PHP if [ "$REMOTE_PHP" != "" ] ; then replace_in_file "${NGINX_PREFIX}server.conf" "%USE_PHP%" "include ${NGINX_PREFIX}php.conf;"