나의 에러 일지

Nginx - Failed to load resource: the server responded with a status of 413 (Request Entity Too Large) 원인과 해결 방법

Cold Bean 2023. 3. 26. 23:33
728x90

도메인 연동을 하기 위해 NginX 서버를 설정한 이후 서비스에서 이미지 파일을 업로드하려고 했을 때 발생한 에러다. 

원인

처음에는 저번에 해결했던 S3 업로드 용량 제한 설정 문제가 또 발생한 줄 알았다. 알아보니 NginX에서도 파일 업로드 크기 제한을 설정해야 했다. 원하는 파일 크기를 설정하면 정상적으로 작동된다.

해결

나는 EC2(우분투)에 NginX를 설치했다. nginx.conf 파일에 접근해야 한다. 우분투는 /etc/nginx 디렉토리에 위치해 있다.

$ vim /etc/nginx/nginx.conf

그러면 nginx.conf파일이 열리는데 항목 중 http 블록에 client_max_body_size를 입력하고 뒤에 원하는 업로드 제한 용량을 설정한다. 

나는 30MB로 설정했다. 아무것도 지정하지 않으면 기본값 1MB가 적용된다. vim에서 내용을 작성하고 싶으면 i를 눌러 편집 모드를 활성화시키면 된다.

http{
	##
    # Basic Settings
    ##
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    client_max_body_size 30M;  # 추가!
    # server_tokens off;
    
    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

원하는 사이즈를 설정했으면 저장 후 나가준다.(:wq)

아래 명령어로 nginx를 테스트한다. test is successful이 포함된 문구가 뜬다면 정상적으로 실행 가능하다는 뜻이다.

$ nginx -t

테스트에서 문제가 없다면 nginx를 재시작해서 변경사항이 적용되도록 해주면 된다.

$ nignx -s reloard
728x90