관련지식
nginx, websocket

node.js 서버에서 websocket을 사용하고 있는 경우, nginx 를 이용할때도 웹소켓 설정을 별도로 해주어야만 사용이 가능합니다. 방법은 간단합니다. 아래 내용을 설정에 추가하면 됩니다.

  1. proxy_pass http://아이피:포트;
  2. proxy_http_version 1.1;
  3. proxy_set_header Upgrade $http_upgrade;
  4. proxy_set_header Connection "Upgrade";

proxy_http_versionproxy_set_header 은 httpserverlocation 영역에서 설정 가능하지만 proxy_pass 는 location 영역에서나 설정이 가능하므로, 아래와 같이 웹소켓을 사용하는 특정 URI 에 대해서만 설정하는것이 좋습니다.

  1. location /ws {
  2. proxy_pass http://아이피:포트;
  3. proxy_http_version 1.1;
  4. proxy_set_header Upgrade $http_upgrade;
  5. proxy_set_header Connection "Upgrade";
  6. }

참고
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version