diff --git a/production/nginx/location-api.conf b/production/nginx/location-api.conf index 253033206..9c88afc6e 100644 --- a/production/nginx/location-api.conf +++ b/production/nginx/location-api.conf @@ -4,14 +4,42 @@ location /api/v1/statistics { location /api/v1/mining { try_files /dev/null @mempool-api-v1-warmcache; } +location /api/v1/block { + try_files /dev/null @mempool-api-v1-forevercache; +} location /api/v1 { try_files /dev/null @mempool-api-v1-coldcache; } +location /api/block { + rewrite ^/api/(.*) /$1 break; + try_files /dev/null @electrs-api-forevercache; +} location /api/ { rewrite ^/api/(.*) /$1 break; try_files /dev/null @electrs-api-nocache; } +location @mempool-api-v1-forevercache { + 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_background_update on; + proxy_cache_use_stale updating; + proxy_cache api; + proxy_cache_valid 200 30d; + proxy_redirect off; + + expires 30d; +} + location @mempool-api-v1-warmcache { proxy_pass $mempoolBackend; proxy_http_version 1.1; @@ -46,6 +74,7 @@ location @mempool-api-v1-coldcache { proxy_cache api; proxy_cache_valid 200 10s; proxy_redirect off; + expires 10s; } @@ -81,4 +110,27 @@ location @electrs-api-nocache { proxy_cache_bypass $http_upgrade; proxy_redirect off; proxy_buffering off; + + expires -1; +} + +location @electrs-api-forevercache { + proxy_pass $electrsBackend; + 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_background_update on; + proxy_cache_use_stale updating; + proxy_cache api; + proxy_cache_valid 200 30d; + proxy_redirect off; + + expires 30d; }