# Default catch-all page. e.g. if you enter SOME-RANDOM-CHARS.captainroot.domain.com server { # Catch all HTTP listen 80; # Catch all HTTPS listen 443 ssl; ssl_certificate <%-fake.crtPath%>; ssl_certificate_key <%-fake.keyPath%>; server_name _; location /nginx_status { stub_status on; access_log off; # This can be improved by adding authentication as well. # CIDR Range IPs: allow 172.16.0.0/12; allow 10.0.0.0/8; allow 192.168.0.0/16; deny all; } location / { root <%-captain.defaultHtmlDir%>; index index.html index.htm; } error_page 404 /index.html; error_page 500 502 503 504 /error_generic_catch_all.html; } # Captain dashboard at captain.captainroot.domain.com server { listen 80; client_max_body_size 300m; gzip on; gzip_disable "MSIE [1-6]\."; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_min_length 16000; gzip_buffers 16 8k; gzip_types text/css text/plain text/javascript application/javascript application/json application/x-javascript application/xml application/xml+rss application/xhtml+xml application/x-font-ttf application/x-font-opentype application/vnd.ms-fontobject image/svg+xml image/x-icon application/rss+xml application/atom_xml; <% if (captain.hasRootSsl) { %> listen 443 ssl; ssl_certificate <%-captain.crtPath%>; ssl_certificate_key <%-captain.keyPath%>; <% } %> server_name <%-captain.domain%>; # 127.0.0.11 is DNS set up by Docker, see: # https://docs.docker.com/engine/userguide/networking/configure-dns/ # https://github.com/moby/moby/issues/20026 resolver 127.0.0.11 valid=10s; set $upstream http://<%-captain.serviceName%>:<%-captain.serviceContainerPort3000%>; # IMPORTANT!! Except proxy_read_timeout, this block should be same as location /api/v2/user/apps/appData location / { proxy_pass $upstream; 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; } # temporary until build process becomes an asynchronous process location /api/v2/user/apps/appData { proxy_pass $upstream; 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_read_timeout 120s; } # Used by Lets Encrypt location /.well-known/acme-challenge/ { root <%-captain.staticWebRoot%>; } # Used by CapRover for health check location /.well-known/captain-identifier { root <%-captain.staticWebRoot%>; } } # Built-in Docker Registry at registry.captainroot.domain.com # Port 80/443 is used by Let's Encrypt to support HTTPS # But the Registry engine runs on port 996 server { listen 80; client_max_body_size 500m; <% if (registry.hasRootSsl) { %> listen 443 ssl; ssl_certificate <%-registry.crtPath%>; ssl_certificate_key <%-registry.keyPath%>; <% } %> server_name <%-registry.domain%>; location / { root <%-registry.staticWebRoot%>; } }