# SyncGames S3 API — NGINX example # Replace syncgames-s3.example.com and upstream as needed. # Place behind Cloudflare Tunnel; do NOT put auth_basic on this vhost. upstream syncgames_minio { server 127.0.0.1:9000; keepalive 32; } server { listen 80; server_name syncgames-s3.example.com; # Emulator dumps / large co-op packs client_max_body_size 512m; # S3 clients send unusual headers ignore_invalid_headers off; location / { proxy_pass http://syncgames_minio; proxy_http_version 1.1; proxy_set_header Connection ""; # Critical for SigV4 — do not rewrite to localhost 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; proxy_set_header Authorization $http_authorization; proxy_set_header Content-Type $content_type; proxy_set_header Content-Length $content_length; proxy_set_header Expect $http_expect; # Avoid truncated PUTs proxy_request_buffering off; proxy_buffering off; proxy_connect_timeout 60s; proxy_send_timeout 3600s; proxy_read_timeout 3600s; } }