server { listen 80; server_name drone.novicelab.io; return 301 https://$host$request_uri; } server { listen 443 ssl; # http2; server_name drone.novicelab.io; ssl_certificate /etc/letsencrypt/live/novicelab.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/novicelab.io/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_session_cache shared:SSL:10m; # Security headers add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; resolver 127.0.0.11 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; # set $couch_backend 10.0.0.251:9001; set $drone_backend drone:80; set $drone_runner_backend drone-runner-1:3000; location / { proxy_pass http://$drone_backend; proxy_set_header Host $http_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; # WebSocket support for real-time updates proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Timeouts proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; send_timeout 300; } # location /runner-1 { # proxy_pass http://$drone_runner_backend; # proxy_set_header Host $http_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; # # WebSocket support for real-time updates # proxy_http_version 1.1; # proxy_set_header Upgrade $http_upgrade; # proxy_set_header Connection "upgrade"; # # Timeouts # proxy_connect_timeout 300; # proxy_send_timeout 300; # proxy_read_timeout 300; # send_timeout 300; # } }