# Example nginx configuration for production with SNS webhook support server { listen 80; server_name yourdomain.com; # Redirect HTTP to HTTPS in production return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name yourdomain.com; # SSL configuration (add your certificates) # ssl_certificate /path/to/your/cert.pem; # ssl_certificate_key /path/to/your/key.pem; # Frontend (static files) location / { proxy_pass http://maillist-web:80; 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; } # API endpoints (including SNS webhook) location /api/ { # Remove /api prefix when forwarding to backend rewrite ^/api/(.*) /$1 break; proxy_pass http://maillist-api:8000; 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; # Important for SNS webhooks - increase timeouts and body size proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; client_max_body_size 10M; } # Direct SNS webhook endpoint (alternative path) location /webhooks/sns { proxy_pass http://maillist-api:8000/webhooks/sns; 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; # SNS specific settings proxy_connect_timeout 30s; proxy_send_timeout 30s; proxy_read_timeout 30s; client_max_body_size 1M; } }