웹소켓 서버를 nginx 를 통해 포워딩을 하려고 단순하게 아래와 같이 서버 설정을 할 경우 정상적으로 처리가 되지 않는다.
server {
...
# forward {context-path}
location /{context-path}/ {
proxy_pass http://localhost:{port}/{context-path}/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
아래와 같이 map 설정을 해주어야 정상동작을 한다.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
...
참고자료: http://nginx.org/en/docs/http/websocket.html