socket.io behind nginx (response code: 400)

เจอ error แบบนี้ใน console ของ browser

failed: Error during WebSocket handshake: Unexpected response code: 400

แก้โดยปรับ config ของ nginx ให้เป็นแบบนี้

location / {
  proxy_pass http://localhost:8080;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

(สีแดง คือ ที่เพิ่งเพิ่มเข้าไปทีหลัง แล้วมันแก้ปัญหาได้)