개발 창고/Server

[Nginx] PayloadTooLargeError: request entity too large

로이제로 2023. 3. 20. 22:00
반응형
# nginx 설정
$> sudo vi /etc/nginx/nginx.conf

http {
    ...
    client_max_body_size 20m;
    ...
}

# 설정오류 체크
$> sudo nginx -t

# nginx 재시작
$> sudo systemctl restart nginx

2023.03.05 - [개발 창고/NodeJS] - [NodeJS] PayloadTooLargeError: request entity too large

 

[NodeJS] PayloadTooLargeError: request entity too large

express에 editor에서 전달된 정보를 전달하다 보니 위와 같은 오류가 발생하였습니다. 이는 request의 payload (Post의 request body) 내용을 파싱 할 때 발생하는 에러입니다. request body를 parsing하는 기본 값

royzero.tistory.com

 

이전에 NodeJS의 express를 사용하는 경우 body 용량에 대해 포스팅한 적이 있습니다. 이는 express에서 처리하는 경우이고, 만약 웹서버로 Nginx를 사용하는 경우 express로 가기 이전에, Nignx에서도 용량제한이 걸리게 됩니다.

 

nginx 홈페이지에서 확인해 보면,

 

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

 

Module ngx_http_core_module

Module ngx_http_core_module Directives Syntax: absolute_redirect on | off; Default: absolute_redirect on; Context: http, server, location This directive appeared in version 1.11.8. If disabled, redirects issued by nginx will be relative. See also server_na

nginx.org

보통 트래픽 관리를 위해서 최대한의 사이즈를 막아둔 게 아닐까 싶습니다.

 

Nginx에서 명시된 바와 같이 default size는 1MB이고, 설정을 위해서는 http/server/location 어느 위치에서든 client_max_body_size를 지정해 주면 됩니다.

 

사용방법은 http 전체에 지정하는 경우

http {
    ...
    client_max_body_size 허용최대용량
    ...
}

처럼 사용하면 됩니다.

 

 

반응형