Merge branch 'master' into ops/nginx-buffer-size

This commit is contained in:
wiz
2023-09-27 12:10:25 +09:00
committed by GitHub
670 changed files with 116553 additions and 49890 deletions

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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;
}