본문 바로가기

반응형

nginx websocket

[Nginx] Websocket 일정시간 후 끊기는 문제 문제 nginx 리버스 프록시를 통해 websocket을 연결하고 메세지를 주고 받다가 일정 시간동안 메세지를 수신 또는 송신하지 않으면 연결이 끊기는 문제가 발생하였다. 원인 nginx에서는 기본적으로 수신 또는 송신을 일정시간 하지 않으면 연결을 끊게 설정되어있다. 이 시간은 60초로 설정되어있다. 해결 그래서 이 시간 설정을 바꿔주면 되는데 설정은 아래와같이 websocket server 부분에 코드를 넣어주면된다. 단위는 ms이다. server { ... proxy_read_timeout 21600000; # 6 * 60 * 60 * 1000 proxy_send_timeout 21600000; # 6 * 60 * 60 * 1000 ... } nginx 공식문서 더보기
[Nginx] Nginx Websocket 리버스 프록시 설정 문제점 https, http 연결 모두 테스트 되었지만 wss로는 연결이 되지 않는 에러가 발생한다. Error during WebSocket handshake: Unexpected response code: 504 원인 클라이언트와 서버간의 연결을 http -> websocket 으로 전환하기 위해서는 프로토콜 전환 메커니즘이 사용된다. 하지만 upgrade는 hop-by-hop 헤더이기때문에 클라이언트에서 서버로 다시 전달되지 않는다. hop - 네트워크의 출발지와 목적지 사이에 위치한 경로 내에서 양 끝단을 포함한 모든 네트워크들의 다음 장비로 패킷이 이동하는것, 홉이 발생하는 수를 홉 카운트 라고 한다. hop-by-hop - 프록시의해 재전송 되거나 캐시되지 않으며 다음 전달에 삭제되는 헤더 해.. 더보기

반응형