WebSocket proxying 이 default 아냐
대부분 HTTP-1.1 reverse proxy 가 default 로 Upgrade header forward 안 함, 그래서 WebSocket handshake 가 proxy 자체에서 400 으로 실패. 명시적으로 enable 해야 함. Enable 후엔 idle timeout 늘려 long-lived WebSocket connection 이 mid-session 안 죽게.
Nginx vs Caddy
Nginx 가 명시적 proxy_set_header Upgrade $http_upgrade + Connection $connection_upgrade 필요. Caddy 가 WebSocket 감지하고 자동 forward — 특별 config 없음. Quick PoC 엔 Caddy 가 ergonomic 으로 이김; Nginx 가 production default 인 건 능력 아니라 친숙함 때문.