Intro
스프링부트 서버 + 앞단에 Nginx 가 있는 구조에서 Post 요청으로 파일을 업로드 하는데 413 에러가 발생했다.
파일 사이즈가 그닥 크지는 않았는데도, 1MB 만 넘으면 여지없이 413 에러가 발생했다. 로컬에서 테스트할땐 괜찮았는데, 개발서버에 배포하고 테스트 할 때 문제가 발생했다.
원인
개발서버에서는 앞단에 Nginx가 한개가 더 추가되어있는데, 그래서 웹서버의 설정 문제임을 짐작 할 수 있었다.
nginx 문서 에서 client_max_body_size
항목을 찾아보면, 기본값이 1MB 라고 한다.
If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client.
요청이 사이즈 제한을 넘어서면 413 에러가 발생한다고 나와 있다. 기본 값은
1m;
(1MB) 라고 한다.
기존에 하나있는 nginx 에서는 client_max_body_size 0;
로 제한 없이 설정을 해 두었는데, 새로 추가한 웹서버가 기본 설정으로 크기 제한이 들어가면서 요청을 거부한 것.
해결
nginx 설정에 client_max_body_size 0;
를 추가 해서 바디 사이즈 제한을 해제한다.
따로 기입되어있지 않으면 1메가 제한이 걸리기 때문에, 그대로 두면 또 에러가 발생할 것이다. 물론 파일 업로드 때문이라면 TUS 프로토콜같은 것을 사용하여 청크 사이즈를 줄이는 방법이 있기는 하지만 아무래도 1메가는 좀 작긴 하다.
제한 없이 설정하기가 꺼림칙하다면 아래처럼 10메가 정도로 하는 방법도 있다.
http {
...
client_max_body_size 10m;
server {
...
}
...
하지만 기본값에서 413을 만났다면 10m에서도 만날 확률이 매우 높으니 알아서 잘 조절하자.
References
'Development > Daily Error' 카테고리의 다른 글
[일간에러] error: invalid source release: 21 (0) | 2024.01.12 |
---|---|
Apache Commons net 한글 파일명 문제 해결 (0) | 2024.01.10 |
[Java] Base64 디코딩 중 Illegal base64 character a 에러 해결 (2) | 2023.12.02 |
골치아픈 공공데이터포털 serviceKey 인코딩 문제 (0) | 2023.05.28 |
IRODS ) Quota 제한 넘기지 못하도록 강제하기 (0) | 2023.04.11 |