| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | ########### | 
					
						
							|  |  |  | # mempool # | 
					
						
							|  |  |  | ########### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-27 10:28:51 -07:00
										 |  |  | # Block the internal APIs of esplora | 
					
						
							| 
									
										
										
										
											2023-08-28 02:18:59 +09:00
										 |  |  | location /api/internal/ { | 
					
						
							| 
									
										
										
										
											2024-02-27 11:45:35 +09:00
										 |  |  | 	if ($mempool_external) { | 
					
						
							|  |  |  | 		return 403; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	rewrite ^/api/(.*) /$1 break; | 
					
						
							|  |  |  | 	try_files /dev/null @esplora-api-cache-disabled; | 
					
						
							| 
									
										
										
										
											2023-08-28 02:18:59 +09:00
										 |  |  | } | 
					
						
							|  |  |  | location /api/v1/internal/ { | 
					
						
							| 
									
										
										
										
											2024-02-27 11:45:35 +09:00
										 |  |  | 	if ($mempool_external) { | 
					
						
							|  |  |  | 		return 403; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	try_files /dev/null @mempool-api-v1-cache-normal; | 
					
						
							| 
									
										
										
										
											2023-08-16 00:44:06 -07:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-27 10:28:51 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | # websocket has special HTTP headers | 
					
						
							|  |  |  | location /api/v1/ws { | 
					
						
							|  |  |  | 	try_files /dev/null @mempool-api-v1-websocket; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # warm cache mining and mempool API responses | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | location /api/v1/statistics { | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @mempool-api-v1-cache-warm; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-03-29 12:07:16 -05:00
										 |  |  | location /api/v1/mining { | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @mempool-api-v1-cache-warm; | 
					
						
							| 
									
										
										
										
											2022-01-28 13:32:03 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2024-01-26 10:26:28 -05:00
										 |  |  | location /api/v1/fees/recommended { | 
					
						
							| 
									
										
										
										
											2024-01-26 10:40:21 -05:00
										 |  |  | 	try_files /dev/null @mempool-api-v1-cache-hot; | 
					
						
							| 
									
										
										
										
											2024-01-26 10:26:28 -05:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # it's ok to cache blockchain data "forever", so we do 30d | 
					
						
							| 
									
										
										
										
											2022-06-24 17:52:34 +09:00
										 |  |  | location /api/v1/block/ { | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @mempool-api-v1-cache-forever; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # everything else gets "normal" cache | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | location /api/v1 { | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @mempool-api-v1-cache-normal; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | ########### | 
					
						
							|  |  |  | # esplora # | 
					
						
							|  |  |  | ########### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # it's ok to cache blockchain data "forever", so we do 30d | 
					
						
							| 
									
										
										
										
											2022-06-24 17:52:34 +09:00
										 |  |  | location /api/block/ { | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	rewrite ^/api/(.*) /$1 break; | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @esplora-api-cache-forever; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | # other API responses cannot be cached | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | location /api/ { | 
					
						
							|  |  |  | 	rewrite ^/api/(.*) /$1 break; | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	try_files /dev/null @esplora-api-cache-disabled; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | ########### | 
					
						
							|  |  |  | # routing # | 
					
						
							|  |  |  | ########### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | location @mempool-api-v1-websocket { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	proxy_http_version 1.1; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	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; | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | location @mempool-api-v1-cache-forever { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	proxy_cache_background_update on; | 
					
						
							|  |  |  | 	proxy_cache_use_stale updating; | 
					
						
							| 
									
										
										
										
											2024-02-06 13:53:03 -05:00
										 |  |  | 	proxy_cache apicold; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	proxy_cache_valid 200 30d; | 
					
						
							|  |  |  | 	proxy_redirect off; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	expires 30d; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-26 10:40:21 -05:00
										 |  |  | location @mempool-api-v1-cache-hot { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	proxy_set_header Host $host; | 
					
						
							|  |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	proxy_cache_background_update on; | 
					
						
							|  |  |  | 	proxy_cache_use_stale updating; | 
					
						
							| 
									
										
										
										
											2024-02-06 13:53:03 -05:00
										 |  |  | 	proxy_cache apihot; | 
					
						
							| 
									
										
										
										
											2024-01-26 10:40:21 -05:00
										 |  |  | 	proxy_cache_valid 200 1s; | 
					
						
							|  |  |  | 	proxy_redirect off; | 
					
						
							| 
									
										
										
										
											2024-02-06 13:55:44 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	expires 1s; | 
					
						
							| 
									
										
										
										
											2024-01-26 10:40:21 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | location @mempool-api-v1-cache-warm { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:06:13 +09:00
										 |  |  | 	proxy_cache_background_update on; | 
					
						
							|  |  |  | 	proxy_cache_use_stale updating; | 
					
						
							| 
									
										
										
										
											2024-02-06 13:53:03 -05:00
										 |  |  | 	proxy_cache apiwarm; | 
					
						
							| 
									
										
										
										
											2022-01-13 15:06:13 +09:00
										 |  |  | 	proxy_cache_valid 200 10s; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 	proxy_redirect off; | 
					
						
							| 
									
										
										
										
											2024-07-05 14:44:44 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	expires 120s; | 
					
						
							| 
									
										
										
										
											2022-01-13 15:06:13 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | location @mempool-api-v1-cache-normal { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-01-13 15:06:13 +09:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 13:53:03 -05:00
										 |  |  | 	proxy_cache apinormal; | 
					
						
							| 
									
										
										
										
											2023-06-16 17:15:31 -07:00
										 |  |  | 	proxy_cache_valid 200 2s; | 
					
						
							| 
									
										
										
										
											2022-01-13 15:06:13 +09:00
										 |  |  | 	proxy_redirect off; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-16 17:15:31 -07:00
										 |  |  | 	expires 2s; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | location @mempool-api-v1-cache-disabled { | 
					
						
							|  |  |  | 	proxy_pass $mempoolMainnet; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	proxy_redirect off; | 
					
						
							|  |  |  | 	proxy_buffering off; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	expires -1; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | location @esplora-api-cache-disabled { | 
					
						
							|  |  |  | 	proxy_pass $esploraMainnet; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	proxy_redirect off; | 
					
						
							| 
									
										
										
										
											2022-01-12 23:12:49 +09:00
										 |  |  | 	proxy_buffering off; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	expires -1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-06 14:01:18 +02:00
										 |  |  | location @esplora-api-cache-forever { | 
					
						
							|  |  |  | 	proxy_pass $esploraMainnet; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-11 15:31:13 +02:00
										 |  |  | 	proxy_set_header Host $host; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	proxy_set_header X-Real-IP $remote_addr; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 
					
						
							|  |  |  | 	proxy_set_header X-Forwarded-Proto $scheme; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	proxy_cache_background_update on; | 
					
						
							|  |  |  | 	proxy_cache_use_stale updating; | 
					
						
							| 
									
										
										
										
											2024-02-06 13:53:03 -05:00
										 |  |  | 	proxy_cache apicold; | 
					
						
							| 
									
										
										
										
											2022-06-21 22:27:40 +09:00
										 |  |  | 	proxy_cache_valid 200 30d; | 
					
						
							|  |  |  | 	proxy_redirect off; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	expires 30d; | 
					
						
							| 
									
										
										
										
											2022-01-04 15:28:17 +09:00
										 |  |  | } |