# Settings adapted from # https://github.com/mempool/mempool/blob/v3.2.1/production/nginx/server-common.conf # see order of nginx location rules # https://stackoverflow.com/questions/5238377/nginx-location-priority # for exact / requests, redirect based on $lang # cache redirect for 5 minutes location = / { if ($lang != '') { return 302 $scheme://$host/$lang/; } try_files /en-US/index.html =404; expires 5m; } # cache //main.f40e91d908a068a2.js forever since they never change location ~ ^/([a-z][a-z])/(.+\..+\.(js|css))$ { try_files $uri =404; expires 1y; } # cache everything else for 5 minutes location ~ ^/([a-z][a-z])$ { try_files $uri /$1/index.html /en-US/index.html =404; expires 5m; } location ~ ^/([a-z][a-z])/ { try_files $uri /$1/index.html /en-US/index.html =404; expires 5m; } # cache /resources/** for 1 week since they don't change often location /resources { try_files $uri /en-US/index.html; expires 1w; } # cache /main.f40e91d908a068a2.js forever since they never change location ~* ^/.+\..+\.(js|css)$ { try_files /$lang/$uri /en-US/$uri =404; expires 1y; } # catch-all for all URLs i.e. /address/foo /tx/foo /block/000 # cache 5 minutes since they change frequently location / { try_files /$lang/$uri $uri /en-US/$uri /en-US/index.html =404; expires 5m; }