Add nginx cache warmer script for production use

This commit is contained in:
wiz 2022-01-13 15:06:13 +09:00
parent 548f38292f
commit 2cb50c2351
No known key found for this signature in database
GPG key ID: A394E332255A6173
3 changed files with 44 additions and 5 deletions

19
production/nginx-cache-warmer Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/env zsh
hostname=$(hostname)
while true
do for url in /url/v1/statistics/2h \
/url/v1/statistics/24h \
/url/v1/statistics/1w \
/url/v1/statistics/1m \
/url/v1/statistics/3m \
/url/v1/statistics/6m \
/url/v1/statistics/1y \
/url/v1/statistics/2y \
/url/v1/statistics/3y \
/
do
curl -s "https://${hostname}${url}" >/dev/null
done
sleep 10
done

View file

@ -1,4 +1,5 @@
# proxy cache # proxy cache
proxy_cache_path /var/cache/nginx/api keys_zone=api:20m levels=1:2 inactive=600s max_size=100m;
proxy_cache_path /var/cache/nginx/services keys_zone=services:20m levels=1:2 inactive=600s max_size=100m; proxy_cache_path /var/cache/nginx/services keys_zone=services:20m levels=1:2 inactive=600s max_size=100m;
proxy_cache_path /var/cache/nginx/markets keys_zone=markets:20m levels=1:2 inactive=600s max_size=100m; proxy_cache_path /var/cache/nginx/markets keys_zone=markets:20m levels=1:2 inactive=600s max_size=100m;
types_hash_max_size 2048; types_hash_max_size 2048;

View file

@ -1,15 +1,15 @@
location /api/v1/statistics { location /api/v1/statistics {
try_files /dev/null @mempool-api-v1-cache; try_files /dev/null @mempool-api-v1-warmcache;
} }
location /api/v1 { location /api/v1 {
try_files /dev/null @mempool-api-v1-nocache; try_files /dev/null @mempool-api-v1-coldcache;
} }
location /api/ { location /api/ {
rewrite ^/api/(.*) /$1 break; rewrite ^/api/(.*) /$1 break;
try_files /dev/null @electrs-api-nocache; try_files /dev/null @electrs-api-nocache;
} }
location @mempool-api-v1-cache { location @mempool-api-v1-warmcache {
proxy_pass $mempoolBackend; proxy_pass $mempoolBackend;
proxy_http_version 1.1; proxy_http_version 1.1;
@ -21,10 +21,29 @@ location @mempool-api-v1-cache {
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade; proxy_cache_bypass $http_upgrade;
proxy_cache_background_update on;
proxy_cache_use_stale updating;
proxy_cache api;
proxy_cache_valid 200 10s;
proxy_redirect off; proxy_redirect off;
proxy_buffering off; expires 10s;
}
proxy_cache_valid any 10s; location @mempool-api-v1-coldcache {
proxy_pass $mempoolBackend;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_cache api;
proxy_cache_valid 200 10s;
proxy_redirect off;
expires 10s; expires 10s;
} }