본문 바로가기
BackEnd

Nginx 413 Request Entity Too Large 에러 해결 방법

by E_van 2020. 6. 22.

웹 서비스를 운영하다 보면, 1MB 이상의 파일(특히 사진이나 동영상)을 업로드할 때 413 Request Entity Too Large 에러를 만나는 경우가 있습니다.
이 에러는 Nginx의 업로드 크기 제한 설정으로 인해 발생합니다.
이번 글에서는 이 문제를 해결하는 방법을 간단히 정리했습니다.
---
1. 문제 원인
Nginx의 기본 설정에서는 파일 업로드 크기가 제한되어 있습니다.
기본적으로 1MB로 설정되어 있기 때문에, 1MB 이상의 파일 업로드 시 413 Request Entity Too Large 에러가 발생합니다.
이 문제를 해결하려면 Nginx 설정 파일에서 client_max_body_size 값을 수정해야 합니다.
---
2. 해결 방법
2.1 Nginx 설정 파일 열기
Nginx의 메인 설정 파일 nginx.conf 를 열어야 합니다.
터미널에서 아래 명령어를 실행하여 파일을 엽니다:

sudo vi /etc/nginx/nginx.conf


2.2 파일 업로드 크기 설정
nginx.conf 파일에서 아래 코드를 추가하거나 수정합니다:

http {
    ...
    client_max_body_size 10M;  # 업로드 최대 크기를 10MB로 설정
    ...
}

 

Tip:

  • 10M은 10MB를 의미하며, 필요에 따라 100M 등 더 큰 크기로 설정할 수 있습니다.
  • 설정 위치는 http, server, 또는 location 블록 내에 추가할 수 있지만, 일반적으로 http 블록에 설정하는 것을 권장합니다.

2.3 Nginx 재시작
설정을 저장한 후, 변경 사항을 적용하기 위해 Nginx를 재시작합니다.
아래 명령어 중 하나를 실행하세요:

sudo nginx -s reload  # 설정 파일만 다시 로드


또는

sudo service nginx restart  # Nginx 서비스 재시작


---
3. 설정 확인
설정이 제대로 적용되었는지 확인하려면 nginx.conf 파일의 업로드 크기 설정을 다시 확인하거나, 실제로 파일을 업로드하여 에러가 해결되었는지 테스트합니다.
---
4. 주의 사항
1. 업로드 제한을 너무 크게 설정하지 마세요.

  • 서버의 리소스와 보안을 고려하여 적절한 크기로 설정하세요.

2. PHP를 사용하는 경우 추가 설정 필요

  • 만약 PHP 기반 서버를 사용 중이라면 php.ini 파일에서도 업로드 크기 제한을 설정해야 합니다.
upload_max_filesize = 10M
post_max_size = 10M


3. 에러 로그 확인
문제가 계속 발생할 경우 Nginx 에러 로그(/var/log/nginx/error.log)를 확인하여 추가적인 원인을 분석하세요.
---
결론
413 Request Entity Too Large 에러는 Nginx 설정 파일의 업로드 크기 제한으로 인해 발생하는 일반적인 문제입니다.
위에서 설명한 대로 client_max_body_size 값을 수정하고 Nginx를 재시작하면 간단히 해결할 수 있습니다.
필요하다면 PHP나 기타 서버 설정도 함께 확인하여 파일 업로드 환경을 최적화하세요.