Useful for kawai and other XMPP services behind the same URL (eg. for serving SSL traffic.)
WebSockets require HTTP/1.1, and prosody assumes traffic on TCP port 5280 is not secure (and trying to force it to starttls) thus requiring the configuration knob highlighted below.
prosody.cfg.lua
consider_websocket_secure = true
nginx.conf
map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { # ... location /xmpp-websocket { proxy_pass http://127.0.0.1:5280; proxy_buffering off; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }