CS/Linux
[Linux] 이미지 업로드 실패 : nginx 관련 PUT 413 (Request Entity Too Large) 에러
DandyNow
2024. 3. 27. 10:51
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
반응형