Size Limitation / Timeouts Flashcards
Buffer Size와 Timeout 옵션은
서버에 의존적이라기 보단
서버를 향한 요청 그 자체에 더 의존적이다
TCP 포트로 Nginx로 요청이 오면
엔진엑스 프로세스로 보내기 전에
메모리로 버퍼링을 시킨다
엔진엑스 서버로 요청이 들어오면
프로세스로 처리하기 전에 버퍼링을 한다
이 때 요청의 크기가
적절하게 작은 크기라면
처리가 되고
결과가 디스크로 보내진다
어떤 정적파일을 요청받으면
디스크에서 정적파일을
메모리로 버퍼링시키고
엔진엑스 프로세스가 보낸다
( 근데 대부분 sendfile 지시어로 다이렉트로 보내진다 )
버퍼링은 읽고 쓰는 계층을 보호하기위한 계층이 아니다
OX
X,
Reading / Writing 을 위한 얇은 보호계층이다
~ Timeout 지시어는 보통
주어진 이벤트에 대한 Cutoff 타임을 지정한다
만약 클라이언트가 계속해서 끝없는 스트림을 보내면
서버가 마비된다
이런 걸 해결하기 위해서
일반적으로 어떤 옵션을 지정하는가?
~ timeout
요청의 바디를
메모리에 버퍼링할
사이즈를 지정하는 지시어
( 보통 form 태그로부터 온다 )
client_body_buffer_size
POST 요청을
특정 사이즈를 넘으면 받지않겠다는 걸 결정하는 지시어
client_max_body_size
요청의 헤더를
메모리에 버퍼링할
사이즈를 지정하는 지시어
client_header_buffer_size
( 거의 100% 1k로 해도 상관없다 )
요청의 바디를 읽을 시간을 정의하는 지시어
client_body_timeout
요청의 헤더를 읽을 시간을 정의하는 지시어
client_header_timeout
클라이언트에서 서버로의 연결을
서버쪽에서 얼마나 지속할 것인지
정의하는 지시어
keepalive_timeout
클라이언트가 특정 시간동안 응답을 못받았다면
서버에서 연결을 닫는 지시어
send_timeout
정적인 파일의 경우 버퍼링을 생략하는 지시어
sendfile