Dandy Now!
  • [Linux] 이미지 업로드 실패 : nginx 관련 PUT 413 (Request Entity Too Large) 에러
    2024년 03월 27일 10시 51분 40초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    1. PUT 413 (Request Entity Too Large) 에러

    서버 이전 후 기존에 아무 문제 없이 운영하던 애플리케이션의 이미지 업로드 기능이 작동하지 않는 문제가 발생했다. 이미지 업로드 시도 시 콘솔에서 CORS 에러가 발생한 것을 확인할 수 있었다. node.js로 작성된 이미지 서버에서 모든 CORS 정책을 허용을 하였음에도 해결되지 않았다. 즉 콘솔에 표면적으로 드러난 CORS 에러가 원인이 아니라는 것을 짐작할 수 있었다. 확인 차 크롬 브라우저 CORS 허용하여 테스트해보았다. 더 중요한 에러 메시지는 "PUT 413 (Request Entity Too Large)" 임을 확인했다.

     

    2. nginx의 default 설정에 client_max_body_size 추가하여 해결

    이미지 서버는 nginx를 통해 443 포트로 서비스되도록 하고 있었다. 이미지 업로드 시 이미지 파일의 크기가 허용 범위를 넘어가서 업로드되지 않는 것을 확인했다. 그래서 client_max_body_size를 10m로 설정하는 옵션을 추가하였다. 설정을 변경하고 nginx를 재 구동하였고 문제는 해결되었다. 이전하기전 서버에서는 이런 옵션 없이도 아무 문제가 없었다. 그런데 새로운 서버 시스템에서는 왜 이런 옵션을 추가해야만 하는 것인지는-아직-모르겠다.

    # /etc/nginx/sites-available/default
    
    server {
      listen 443 ssl;
      server_name (생략);
      client_max_body_size 10m; # 추가
      
    # (생략)
    }

     

    🤔 이미지 업로드시 이미지 사이즈를 리사이즈하는 과정을 추가할 필요가 있겠다는 생각을 했다.

    728x90
    반응형
    댓글