Nginx 의 시간 초과 설정
Nginx 가 처리 하 는 모든 요청 은 시간 초과 설정 이 있 습 니 다.이러한 시간 초과 제한 을 잘 하면 시간 초과 판정 후 자원 이 방출 되 어 다른 요청 을 처리 하여 Nginx 의 성능 을 향상 시 킵 니 다.
keepalive_timeout
HTTP 는 무상 태 프로 토 콜 로 클 라 이언 트 가 서버 에 TCP 요청 을 보 내 고 서버 응답 이 끝나 면 연결 을 끊 습 니 다.
클 라 이언 트 가 서버 에 여러 개의 요청 을 보 내 면 모든 요청 은 각각 독립 된 연결 을 만들어 데 이 터 를 전송 해 야 합 니 다.
HTTP 는 웹 서버 에 요청 을 처리 한 후에 이 TCP 연결 의 열 린 상 태 를 유지 하 라 는 KeepAlive 모드 가 있 습 니 다.클 라 이언 트 로부터 다른 요청 을 받 으 면 서버 는 닫 히 지 않 은 연결 을 이용 하여 연결 을 만 들 필요 가 없습니다.
KeepAlive 는 일정 시간 동안 열 린 상 태 를 유지 합 니 다. 이 기간 동안 자원 을 사용 합 니 다.너무 많이 점용 하면 성능 에 영향 을 줄 수 있다.
Nginx keepalive 사용timeout 은 KeepAlive 의 시간 초과 (timeout) 를 지정 합 니 다.모든 TCP 연결 을 최대 얼마나 오래 유지 할 수 있 는 지 지정 합 니 다.Nginx 의 기본 값 은 75 초 이 며, 일부 브 라 우 저 는 최대 60 초 만 유지 하기 때문에 60 초 로 설정 할 수 있다.0 으로 설정 하면 keepalive 연결 이 금 지 됩 니 다.보통 keepalivetimeout 은 client 보다body_timeout (다음 글 참조) 크다.
# : http, server, location
keepalive_timeout 60s;
client_body_timeout
클 라 이언 트 와 서버 가 연결 되 어 있 는 후 request body 를 보 내 는 시간 초과 시간 을 지정 합 니 다.클 라 이언 트 가 지 정 된 시간 내 에 내용 을 보 내지 않 으 면 Nginx 는 HTTP 408 (Request Timed Out) 을 되 돌려 줍 니 다.
# : http, server, location
client_body_timeout 20s;
client_header_timeout
클 라 이언 트 가 서버 에 완전한 request header 의 시간 초과 시간 을 보 냅 니 다.클 라 이언 트 가 지정 한 시간 안에 완전한 request header 를 보 내지 않 으 면 Nginx 는 HTTP 408 (Request Timed Out) 을 되 돌려 줍 니 다.
# : http, server, location
client_header_timeout 10s;
send_timeout
서버 에서 클 라 이언 트 에 게 데 이 터 를 전송 하 는 시간 초과, 퍼 가기 응용 서비스 에 따라 proxy 를 설정 할 수 있 습 니 다.send_timeout、uwsgi_send_timeout、fastcgi_send_timeout.
# :http, server, location
send_timeout 30s;
Default:
send_timeout 60s;
Context: http, server, location
Sets a timeout for transmitting a response to the client. The timeout is set only between two successive write operations,
not for the transmission of the whole response. If the client does not receive anything within this time, the connection is closed.
client_header_timeout
클 라 이언 트 헤더 수신 시간 초과, 기본 60s, 60s 내 에 완전한 http 헤 더 를 받 지 못 하면 408 로 돌아 갑 니 다.
Syntax: client_header_timeout time;
Default:
client_header_timeout 60s;
Context: http, server
Defines a timeout for reading client request header. If a client does not transmit the entire header within this time,
the 408 (Request Time-out) error is returned to the client.
client_body_timeout
클 라 이언 트 body 수신 시간 초과, 기본 60s, 연속 60s 내 클 라 이언 트 의 1 바이트 가 받 지 않 으 면 408 로 돌아 갑 니 다.
Syntax: client_body_timeout time;
Default:
client_body_timeout 60s;
Context: http, server, location
Defines a timeout for reading client request body. The timeout is set only for a period between two successive read operations, not for the transmission of the whole request body.
If a client does not transmit anything within this time,
the 408 (Request Time-out) error is returned to the client.
lingering_timeout
TCP 연결 이 꺼 졌 을 때의 SO 로 이해 할 수 있 습 니 다.LINGER 지연 설정, 기본 5s
Syntax: lingering_timeout time;
Default:
lingering_timeout 5s;
Context: http, server, location
When lingering_close is in effect, this directive specifies the maximum waiting time for more client data to arrive. If data are not received during this time,
the connection is closed. Otherwise, the data are read and ignored, and nginx starts waiting for more data again.
The “wait-read-ignore” cycle is repeated, but no longer than specified by the lingering_time directive.
resolver_timeout
도 메 인 이름 분석 시간 초과, 기본 30s
Syntax: resolver_timeout time;
Default:
resolver_timeout 30s;
Context: http, server, location
Sets a timeout for name resolution, for example:
resolver_timeout 5s;
proxy_connect_timeout
nginx 와 upstream server 의 연결 시간 초과, 기본 값 은 60s 입 니 다.응용 에 따라 uwsgi 설정 가능send_timeout/fascgi_send_timeout/proxy_send_timeout
Syntax: proxy_connect_timeout time;
Default:
proxy_connect_timeout 60s;
Context: http, server, location
Defines a timeout for establishing a connection with a proxied server. It should be noted that this timeout cannot usually exceed 75 seconds.
proxy_read_timeout
nginx 가 upstream server 데 이 터 를 수신 하 는 데 시간 이 초과 되 었 습 니 다. 기본 60s 입 니 다. 연속 적 인 60s 에서 1 개의 바이트 가 받 지 않 으 면 연결 이 닫 힙 니 다.응용 에 따라 uwsgi 설정 가능send_timeout/fascgi_send_timeout/proxy_send_timeout
Syntax: proxy_read_timeout time;
Default:
proxy_read_timeout 60s;
Context: http, server, location
Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations,
not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.
proxy_send_timeout
nginx 에서 upstream server 로 데 이 터 를 보 내 는 시간 이 초과 되 었 습 니 다. 기본 60s 입 니 다. 연속 적 인 60s 에서 1 개의 바이트 가 보 내지 않 으 면 연결 이 닫 힙 니 다.응용 에 따라 uwsgi 설정 가능send_timeout/fascgi_send_timeout/proxy_send_timeout。
Syntax: proxy_send_timeout time;
Default:
proxy_send_timeout 60s;
Context: http, server, location
Sets a timeout for transmitting a request to the proxied server. The timeout is set only between two successive write operations,
not for the transmission of the whole request. If the proxied server does not rec
저자: shiguofu
링크:https://hacpai.com/article/1543809580828
출처: * * 파
프로 토 콜: CC BY - SA 4.0https://creativecommons.org/licenses/by-sa/4.0/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.