Merge branch 'master' into ops/nginx-buffer-size
This commit is contained in:
@@ -35,3 +35,5 @@ gzip_types application/javascript application/json application/ld+json applicati
|
||||
# limit request body size
|
||||
client_max_body_size 10m;
|
||||
|
||||
# need to bump this up for about page sponsor images lol
|
||||
http2_max_concurrent_streams 256;
|
||||
|
||||
@@ -3,8 +3,8 @@ map $http_accept_language $header_lang {
|
||||
~*^en-US '';
|
||||
~*^en '';
|
||||
~*^ar ar;
|
||||
~*^ca ca;
|
||||
~*^cs cs;
|
||||
~*^da da;
|
||||
~*^de de;
|
||||
~*^es es;
|
||||
~*^fa fa;
|
||||
@@ -31,14 +31,15 @@ map $http_accept_language $header_lang {
|
||||
~*^uk uk;
|
||||
~*^vi vi;
|
||||
~*^zh zh;
|
||||
~*^lt lt;
|
||||
}
|
||||
map $cookie_lang $lang {
|
||||
default $header_lang;
|
||||
~*^en-US '';
|
||||
~*^en '';
|
||||
~*^ar ar;
|
||||
~*^ca ca;
|
||||
~*^cs cs;
|
||||
~*^da da;
|
||||
~*^de de;
|
||||
~*^es es;
|
||||
~*^fa fa;
|
||||
@@ -65,4 +66,5 @@ map $cookie_lang $lang {
|
||||
~*^uk uk;
|
||||
~*^vi vi;
|
||||
~*^zh zh;
|
||||
~*^lt lt;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
# 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/markets keys_zone=markets:20m levels=1:2 inactive=600s max_size=100m;
|
||||
types_hash_max_size 2048;
|
||||
proxy_buffer_size 8k;
|
||||
proxy_cache_path /var/cache/nginx/api keys_zone=api:20m levels=1:2 inactive=365d max_size=2000m;
|
||||
proxy_cache_path /var/cache/nginx/unfurler keys_zone=unfurler:20m levels=1:2 inactive=365d max_size=2000m;
|
||||
proxy_cache_path /var/cache/nginx/slurper keys_zone=slurper:20m levels=1:2 inactive=365d max_size=5000m;
|
||||
proxy_cache_path /var/cache/nginx/services keys_zone=services:20m levels=1:2 inactive=365d max_size=100m;
|
||||
proxy_cache_path /var/cache/nginx/markets keys_zone=markets:20m levels=1:2 inactive=365d max_size=100m;
|
||||
types_hash_max_size 4096;
|
||||
proxy_buffer_size 8k;
|
||||
@@ -1,3 +1,15 @@
|
||||
location /api/v1/services {
|
||||
proxy_pass $mempoolSpaceServices;
|
||||
proxy_cache services;
|
||||
proxy_cache_background_update on;
|
||||
proxy_cache_use_stale updating;
|
||||
proxy_cache_valid 200 1d;
|
||||
expires 1d;
|
||||
proxy_hide_header onion-location;
|
||||
proxy_hide_header strict-transport-security;
|
||||
proxy_hide_header content-security-policy;
|
||||
proxy_hide_header x-frame-options;
|
||||
}
|
||||
location /api/v1/contributors/images {
|
||||
proxy_pass $mempoolSpaceServices;
|
||||
proxy_cache services;
|
||||
|
||||
@@ -97,10 +97,10 @@ location @mempool-api-v1-cache-normal {
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_cache api;
|
||||
proxy_cache_valid 200 10s;
|
||||
proxy_cache_valid 200 2s;
|
||||
proxy_redirect off;
|
||||
|
||||
expires 10s;
|
||||
expires 2s;
|
||||
}
|
||||
|
||||
location @mempool-api-v1-cache-disabled {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# redirect mempool.space/liquid to liquid.network
|
||||
location /liquid {
|
||||
location = /liquid {
|
||||
rewrite /liquid/(.*) https://liquid.network/$1;
|
||||
rewrite /liquid https://liquid.network/;
|
||||
return 308;
|
||||
}
|
||||
|
||||
# redirect mempool.space/liquidtestnet to liquid.network/testnet
|
||||
location /liquidtestnet {
|
||||
location = /liquidtestnet {
|
||||
rewrite /liquidtestnet/(.*) https://liquid.network/testnet/$1;
|
||||
rewrite /liquidtestnet/ https://liquid.network/testnet/;
|
||||
rewrite /liquidtestnet https://liquid.network/testnet;
|
||||
@@ -14,7 +14,7 @@ location /liquidtestnet {
|
||||
}
|
||||
|
||||
# redirect mempool.space/bisq to bisq.markets
|
||||
location /bisq {
|
||||
location = /bisq {
|
||||
rewrite /bisq/(.*) https://bisq.markets/$1;
|
||||
rewrite /bisq https://bisq.markets/;
|
||||
return 308;
|
||||
|
||||
@@ -23,8 +23,8 @@ http {
|
||||
include mempool/production/nginx/http-language.conf;
|
||||
|
||||
# match preview/unfurl bot user-agents
|
||||
map $http_user_agent $unfurlbot {
|
||||
default 0;
|
||||
map $http_user_agent $unfurlprefix {
|
||||
default "";
|
||||
}
|
||||
|
||||
# mempool configuration
|
||||
|
||||
@@ -9,6 +9,10 @@ location /api/tx/ {
|
||||
rewrite ^/api/(.*) /$1 break;
|
||||
try_files /dev/null @esplora-api-cache-disabled;
|
||||
}
|
||||
location /api/address-prefix/ {
|
||||
rewrite ^/api/(.*) /$1 break;
|
||||
try_files /dev/null @esplora-api-cache-disabled;
|
||||
}
|
||||
|
||||
# rewrite APIs to match what backend expects
|
||||
location /api/currencies {
|
||||
|
||||
@@ -48,8 +48,8 @@ add_header Vary Cookie;
|
||||
# for exact / requests, redirect based on $lang
|
||||
# cache redirect for 5 minutes
|
||||
location = / {
|
||||
if ($unfurlbot) {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
if ($unfurlprefix != '') {
|
||||
rewrite ^(.*)$ $unfurlprefix$1 last;
|
||||
}
|
||||
if ($lang != '') {
|
||||
return 302 $scheme://$host/$lang/;
|
||||
@@ -59,18 +59,21 @@ location = / {
|
||||
}
|
||||
|
||||
# cache /<lang>/main.f40e91d908a068a2.js forever since they never change
|
||||
location ~ ^/([a-z][a-z])/(.+\..+\.(js|css)) {
|
||||
location ~ ^/([a-z][a-z])/(.+\..+\.(js|css))$ {
|
||||
try_files $uri =404;
|
||||
expires 1y;
|
||||
}
|
||||
# cache everything else for 5 minutes
|
||||
location ~ ^/([a-z][a-z])$ {
|
||||
if ($unfurlprefix != '') {
|
||||
rewrite ^(.*)$ $unfurlprefix$1 last;
|
||||
}
|
||||
try_files $uri /$1/index.html /en-US/index.html =404;
|
||||
expires 5m;
|
||||
}
|
||||
location ~ ^/([a-z][a-z])/ {
|
||||
if ($unfurlbot) {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
if ($unfurlprefix != '') {
|
||||
rewrite ^(.*)$ $unfurlprefix$1 last;
|
||||
}
|
||||
try_files $uri /$1/index.html /en-US/index.html =404;
|
||||
expires 5m;
|
||||
@@ -81,12 +84,27 @@ location /resources {
|
||||
try_files $uri /en-US/index.html;
|
||||
expires 1w;
|
||||
}
|
||||
|
||||
# only cache /resources/config.* for 5 minutes since it changes often
|
||||
location /resources/config. {
|
||||
try_files $uri =404;
|
||||
expires 5m;
|
||||
}
|
||||
|
||||
# cache /main.f40e91d908a068a2.js forever since they never change
|
||||
location ~* ^/.+\..+\.(js|css) {
|
||||
location ~* ^/.+\..+\.(js|css)$ {
|
||||
try_files /$lang/$uri /en-US/$uri =404;
|
||||
expires 1y;
|
||||
}
|
||||
|
||||
# old stuff is gone
|
||||
location /explorer/ {
|
||||
return 410;
|
||||
}
|
||||
location /sitemap/ {
|
||||
return 410;
|
||||
}
|
||||
|
||||
# unfurl preview
|
||||
location /preview {
|
||||
try_files /$lang/$uri $uri /en-US/$uri /en-US/index.html =404;
|
||||
@@ -94,16 +112,56 @@ location /preview {
|
||||
}
|
||||
# unfurl renderer
|
||||
location ^~ /render {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
expires 10m;
|
||||
try_files /dev/null @mempool-space-unfurler;
|
||||
}
|
||||
# unfurl handler
|
||||
location /unfurl/ {
|
||||
try_files /dev/null @mempool-space-unfurler;
|
||||
}
|
||||
location /slurp/ {
|
||||
try_files /dev/null @mempool-space-slurper;
|
||||
}
|
||||
|
||||
# catch-all for all URLs i.e. /address/foo /tx/foo /block/000
|
||||
# cache 5 minutes since they change frequently
|
||||
location / {
|
||||
if ($unfurlbot) {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
if ($unfurlprefix != '') {
|
||||
rewrite ^(.*)$ $unfurlprefix$1 last;
|
||||
}
|
||||
try_files /$lang/$uri $uri /en-US/$uri /en-US/index.html =404;
|
||||
expires 5m;
|
||||
}
|
||||
|
||||
location @mempool-space-unfurler {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
|
||||
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;
|
||||
proxy_cache unfurler;
|
||||
proxy_cache_valid 200 1h; # will re-render page if older than this
|
||||
proxy_redirect off;
|
||||
|
||||
expires 1d;
|
||||
}
|
||||
|
||||
location @mempool-space-slurper {
|
||||
proxy_pass $mempoolSpaceUnfurler;
|
||||
|
||||
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;
|
||||
proxy_cache slurper;
|
||||
proxy_cache_valid 200 1h; # will re-render page if older than this
|
||||
proxy_redirect off;
|
||||
|
||||
expires 10d;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
upstream esplora-bitcoin-mainnet {
|
||||
server [::1]:3000 fail_timeout=10s max_fails=10 weight=99999;
|
||||
server unix:/bitcoin/socket/esplora-bitcoin-mainnet fail_timeout=10s max_fails=10 weight=99999;
|
||||
}
|
||||
upstream esplora-liquid-mainnet {
|
||||
server [::1]:3001 fail_timeout=10s max_fails=10 weight=99999;
|
||||
server unix:/elements/socket/esplora-liquid-mainnet fail_timeout=10s max_fails=10 weight=99999;
|
||||
}
|
||||
upstream esplora-bitcoin-testnet {
|
||||
server [::1]:3002 fail_timeout=10s max_fails=10 weight=99999;
|
||||
server unix:/bitcoin/socket/esplora-bitcoin-testnet fail_timeout=10s max_fails=10 weight=99999;
|
||||
}
|
||||
upstream esplora-bitcoin-signet {
|
||||
server [::1]:3003 fail_timeout=10s max_fails=10 weight=99999;
|
||||
server unix:/bitcoin/socket/esplora-bitcoin-signet fail_timeout=10s max_fails=10 weight=99999;
|
||||
}
|
||||
upstream esplora-liquid-testnet {
|
||||
server [::1]:3004 fail_timeout=10s max_fails=10 weight=99999;
|
||||
server unix:/elements/socket/esplora-liquid-testnet fail_timeout=10s max_fails=10 weight=99999;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user