[nginx] 413 request entity too large 에러 처리

413 request entity too large 오류

 

기존 윈도우 서버에서 구동중이던 웹서버를 apache에서 nginx 로 교체하는 작업을 진행 후 몇가지 테스트를 진행하다 아래와 같은 오류를 맞이하게 됩니다.

 

413 request entity too large

413 요청 엔터티가 너무 큽니다

 

2개의 서버에 같은 nginx 를 설치했는데 2개의 서버가 넘겨주는 메시지도 하나는 영어, 하나는 한글인데 왜인지 파악해보아야 겠습니다.

 

해당 오류를 찾아보니 클라이언트의 요청 사이즈가 제한에 걸려서 발생하는 문제인데 주로 첨부파일 업로드시 발생하는 부분이었습니다.

아래와 같이 nginx  공식문서에서 해당 오류가 발생하는 경우를 설명해두었는데요

 

client_max_body_size 값일 수정해 클라이언트 요청제한을 늘려서 오류를 없앨 수 있습니다.

 

기본적으로 설치된 nginx 에는 해당 값이 없으며 default 설정은 1메가로 추정되며 작은 크기의 파일을 업로드해도 해당 오류가 발생하는 것으로 보입니다.

 

 

 

조치

 

nginx 설치 폴더 내 conf 폴더 아래 nginx.conf 파일에 client_max_body_size  항목을 추가해 클라이언트 요청제한을 50메가로 늘려주었습니다.

http {
    include       mime.types;
    default_type  application/octet-stream;

    ...
    
    keepalive_timeout  65;    
	server_names_hash_bucket_size	64;
	client_max_body_size 50M;
    
    ...
}

 

 

nginx.exe -s reload 를 통해 서버 restart 없이 설정을 다시 읽어들이도록 해주고 테스트 진행하니 기존에 발생하던 오류가 사라진것을 확인할 수 있습니다.

 

nginx 공식문서에서 더 많은 정보를 확인하실수 있으니 아래 링크 참고하시기 바랍니다.

https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size