nginx 는 reverse proxy로 많이 사용되는 만큼 다양한 timeout 설정이 있다.
각각을 좀 정확히 알고 싶어서 정리했다.
client_header_timeout
request header 정보를 읽는데 설정된 timeout 시간이다. client_header_timeout에 지정한 시간안에 client가 헤더를 전송하지 않으면 요청은 408(Request Time-out)로 끝난다. 디폴트 값은 60초이다.
client_header_timeout 60s;
client_body_timeout
request body 정보를 읽는데 설정된 timeout 시간이다. request body 전체 전송 timeout 시간이 아니라, 두개의 연속적인 읽기 작업 사이의 timeout 시간이다. client_body_timeout에 지정한 시간안에 client가 아무것도 전송하지 않으면 요청은 408(Request Time-out)로 끝난다. 디폴트 값은 60초이다.
client_body_timeout 60s;
keepalive_timeout
첫번째 파라미터는 서버와 커넥션이 계속 열린채로 유지하는데 설정한 timeout 시간이다. 디폴트 값은 75초이다.
0 값은 keep-alive client connections을 사용안한다는 설정이다.
두번째 파라미터(옵션)는 응답 헤더 필드의 timeout 시간 설정이다. Keep-Alive: timeout=time
첫번째와 두번째 파라미터는 다르다.
Keep-Alive: timeout=time 헤더 필드는 Mozilla 와 Konqueror 브라우저에서 인식되고 Microsoft IE 브라우저는 약 60초 후 자체적으로 keep-alive 연결을 닫는다.
timeout 시간이 지나치게 크면 많은 커넥션을 유지하게 되어 L4나 서버의 자원에 부담이 될 수도 있다.
keepalive_timeout 75s;
send_timeout
client로 응답을 전송하는데 설정된 timeout 시간이다. 전체 응답 전송 timeout 시간이 아니라 두개의 연속적인 쓰기 작업 사이의 timeout 시간이다. send_timeout에 지정한 시간안에 client가 아무것도 받지 못하면 connection은 닫힌다. 디폴트 값은 60초이다.
send_timeout 60s;
resolver_timeout
도메인 이름을 IP로 풀어내는데 허용하는 최대시긴이다. 디폴트 값은 30초이다.
resolver_timeout 30s;
proxy_connect_timeout
proxied server 와 연결을 맺는데(establishing) 설정한 timeout 시간이다. 75초를 초과 할 수 없으며 디폴트 값은 60초이다.
proxy_connect_timeout 60s;
proxy_read_timeout
proxied server 로부터 응답을 읽는데 설정한 timeout 시간이다. 전체 응답 전송 timeout 시간이 아니라 두개의 연속적인 읽기 작업 사이의 timeout 시간이다. proxy_read_timeout에 지정한 시간안에 proxied server가 아무것도 전송하지 않으면 connection은 닫힌다. 디폴트 값은 60초이다.
proxy_read_timeout 60s;
proxy_send_timeout
proxied server로 요청을 전송하는데 설정한 timeout 시간이다. 전체 request 전송 timeout 시간이 아니라 두개의 연속적인 쓰기 작업 사이의 timeout 시간이다. proxy_send_timeout에 지정한 시간안에 proxied server가 아무것도 받지 못하면 connection은 닫힌다. 디폴트 값은 60초이다.
proxy_send_timeout 60s;
원문 참고 : nginx.org/en/docs/http/ngx_http_core_module.html
원문 참고 : nginx.org/en/docs/http/ngx_http_proxy_module.html
'Nginx' 카테고리의 다른 글
rewrite break 이슈 (0) | 2022.02.17 |
---|---|
nginx 수정 하면서 썼던 명령어 정리 (0) | 2021.08.03 |
reset_timedout_connection 옵션 (0) | 2021.01.19 |
파일 업로드/다운로드 시 임시 디렉토리 권한 이슈 (0) | 2021.01.19 |
nginx gzip 옵션 (0) | 2021.01.17 |