-
Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)Nginx 2024. 2. 24. 01:17
문제
백엔드 채팅 기능을 개발하면서
이미지와 파일 업로드를 추가했는데, 테스트를 해보니 오류가 발생하여
오류를 타고 타고 들어가다 nginx 로그를 확인해보니 제목과 같은 오류가 발생했다.
이는 nginx에서 client_max_body_size 설정 때문이고,
너무 큰 사이즈의 request를 보내지 못 하도록 제한을 거는 설정이다.
client_max_body_size의 기본값은 1MB이다.
request의 Content-Length 헤더 값이 이 설정된 값을 넘을 수 없기 때문에
파일 업로드할 때 오류가 발생한 것이다.
해결
악의적으로 큰 용량의 파일을 업로드해서 스토리지를 가득 채울 수 있기 때문에
우선은 채팅방에 업로드할 수 있는 최대 사이즈를 10MB로 설정하기로 하였다.
1. nginx 환경 파일에 접근
$ sudo vi /etc/nginx/nginx.conf
2. 서버 업로드 크기(사이즈) 설정
http { 로 시작하는 블럭 안에 아래와 같이 서버 업로드 사이즈를 설정해준다.
참고로 제한을 두지 않으려면 0으로 설정하면 되나, 되도록이면 0으로 설정하지 말자.
http { client_max_body_size {제한 사이즈} }
3. nginx 재시작
리로드 전에, 수정한 nginx 설정 파일이 문법 문제가 없는지 확인하기
$ sudo nginx -t
리로드 수행
$ sudo service nginx reload
'Nginx' 카테고리의 다른 글
Nginx에서 해외 IP 차단 설정하기 (0) 2024.02.24