upstream adonis_backend {
    least_conn;
    server app:3333;
}

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    client_max_body_size 600M;  # 500MB upload support
    client_body_buffer_size 128k;

    location / {
        proxy_pass http://adonis_backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_request_buffering on;  # Ensure smooth streaming
    }

    gzip on;
    gzip_types text/plain application/json text/css application/javascript;
}
