본문 바로가기

Nginx

[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 공식문서

반응형