반응형
웹 서버에서 파일 업로드 또는 대용량 데이터를 전송하려 할 때, 아래와 같은 오류를 마주한 적 있으신가요?
413 Request Entity Too Large
이는 클라이언트가 서버로 보낸 요청 본문(request body)의 크기가 Nginx가 허용하는 최대 크기를 초과했을 때 발생하는 오류입니다. 기본적으로 Nginx는 1MB까지만 허용합니다.
📌 에러 상황 예시
저는 /api/parse 라는 경로로 Flask 앱에 요청을 보내는 환경에서 이 문제를 겪었습니다. POST 요청으로 PDF나 이미지 같은 데이터를 전송할 때 발생했죠.
location /api/parse {
proxy_pass http://localhost:8088/parse;
...
}
🔧 해결 방법: client_max_body_size 설정 추가
Nginx 설정에서 해당 location 블록에 아래 설정을 추가합니다:
client_max_body_size 50M;
예시: 전체 location 블록 수정
location /api/parse {
client_max_body_size 50M; # ← 요청 최대 크기를 50MB로 설정
proxy_pass http://localhost:8088/parse;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
🔄 설정 적용 순서
- 설정 파일 저장
- 문법 체크:
- sudo nginx -t
- 서버 재시작 또는 reload:
- sudo systemctl reload nginx
📌 추가 팁: Flask 앱의 본문 크기 제한도 확인!
Flask에서는 기본적으로 본문 크기 제한이 없지만, request.data를 직접 사용할 경우라면 WSGI 서버(Gunicorn 등)에서도 제한을 걸어둘 수 있습니다. 이 부분도 함께 점검해보세요.
이제 다시 요청을 보내보면 더 이상 413 오류 없이 파일 업로드나 대용량 JSON 요청이 잘 처리될 거예요. 만약 업로드 용량이 더 크다면 100M, 200M 등으로 조절하시면 됩니다.
반응형
'IT & 개발 > etc' 카테고리의 다른 글
Git Checkout 충돌 해결: 유실을 감수하는 방법 vs 안전한 방법 (0) | 2025.05.12 |
---|---|
😲 “((” 이게 다르다고? — 괄호의 숨겨진 정체 (0) | 2025.05.12 |
MySQL에서 특수문자(①~⑩) 검색 및 제거하는 방법 (버전별 정리) (0) | 2025.04.04 |
Git에서 'Permission denied' 오류 해결 방법 (0) | 2025.02.19 |
윈도우에서 하위 폴더 파일 일괄 이름 변경하는 방법 (1) | 2025.01.29 |