user nobody; pid /var/run/nginx.pid; include /usr/local/etc/nginx/modules-enabled/*.conf; worker_processes auto; worker_rlimit_nofile 9999; events { worker_connections 9000; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 300s; types_hash_max_size 2048; include /usr/local/etc/nginx/mime.types; default_type application/octet-stream; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; proxy_cache off; gzip on; gzip_comp_level 5; gzip_min_length 256; gzip_proxied any; gzip_vary on; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; # text/html is always compressed by gzip module server { listen 80; listen [::]:80; server_name mempool.space; if ($host = mempool.space) { return 301 https://$host$request_uri; } # managed by Certbot return 404; # managed by Certbot } server { listen 80; listen [::]:80; server_name mempool.ninja; if ($host = mempool.ninja) { return 301 https://mempool.space$request_uri; } # managed by Certbot return 404; # managed by Certbot } server { listen [::]:443 ssl http2; # managed by Certbot listen 443 ssl http2; # managed by Certbot ssl_certificate /usr/local/etc/letsencrypt/live/mempool.ninja/fullchain.pem; # managed by Certbot ssl_certificate_key /usr/local/etc/letsencrypt/live/mempool.ninja/privkey.pem; # managed by Certbot include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot server_name mempool.ninja; # managed by Certbot return 301 https://mempool.space$request_uri; } server { listen 80; listen [::]:80; server_name liquid.mempool.ninja; if ($host = liquid.mempool.ninja) { return 301 https://mempool.space/liquid$request_uri; } # managed by Certbot return 404; # managed by Certbot } server { listen [::]:443 ssl http2; # managed by Certbot listen 443 ssl http2; # managed by Certbot ssl_certificate /usr/local/etc/letsencrypt/live/liquid.mempool.ninja/fullchain.pem; # managed by Certbot ssl_certificate_key /usr/local/etc/letsencrypt/live/liquid.mempool.ninja/privkey.pem; # managed by Certbot include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot server_name liquid.mempool.ninja; # managed by Certbot return 301 https://mempool.space/liquid$request_uri; } server { listen 80; listen [::]:80; server_name testnet.mempool.ninja; if ($host = testnet.mempool.ninja) { return 301 https://mempool.space/testnet$request_uri; } # managed by Certbot return 404; # managed by Certbot } server { listen [::]:443 ssl http2; # managed by Certbot listen 443 ssl http2; # managed by Certbot ssl_certificate /usr/local/etc/letsencrypt/live/testnet.mempool.ninja/fullchain.pem; # managed by Certbot ssl_certificate_key /usr/local/etc/letsencrypt/live/testnet.mempool.ninja/privkey.pem; # managed by Certbot include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot server_name testnet.mempool.ninja; # managed by Certbot return 301 https://mempool.space/testnet$request_uri; } server { listen 127.0.0.1:81; listen [::]:443 ssl default http2; # managed by Certbot listen 443 ssl default http2; # managed by Certbot ssl_certificate /usr/local/etc/letsencrypt/live/mempool.space/fullchain.pem; # managed by Certbot ssl_certificate_key /usr/local/etc/letsencrypt/live/mempool.space/privkey.pem; # managed by Certbot include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot root /mempool/public_html/mainnet/; index index.html index.htm index.nginx-debian.html; server_name mempool.space; # managed by Certbot location / { try_files $uri $uri/ /index.html =404; } location /explorer { rewrite /explorer/(.*) https://$host/$1 permanent; } location /webhook { proxy_pass http://127.0.0.1:2222/; } location /api { proxy_pass http://127.0.0.1:8999/api; } location /api/mainnet { proxy_pass http://127.0.0.1:8999/api; } location /api/liquid { proxy_pass http://127.0.0.1:8998/api; } location /api/testnet { proxy_pass http://127.0.0.1:8997/api; } location /electrs/ { proxy_pass http://[::1]:3000/; } location /electrs/mainnet/ { proxy_pass http://[::1]:3000/; } location /electrs/liquid/ { proxy_pass http://[::1]:3001/; } location /electrs/testnet/ { proxy_pass http://[::1]:3002/; } location /ws { proxy_pass http://127.0.0.1:8999/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /ws/mainnet { proxy_pass http://127.0.0.1:8999/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /ws/liquid { proxy_pass http://127.0.0.1:8998/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /ws/testnet { proxy_pass http://127.0.0.1:8997/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } }