nginx를 사용하다보면 아래와 같은 에러를 만나게 되는데요.
Http 413에러
모질라의 에러 정의에 따르면 HTTP 413 Payload Too Large 응답 상태 코드는
요청 엔터티가 서버에 의해 정의된 제한보다 크다는 것을 나타낸다고 합니다.
서버가 연결을 닫거나 헤더 필드(Retry-After)를 반환할 수 있다고 안내합니다.
바로 서버에서 아래처럼 응답이 나오게 됩니다.
413에러 해결하는 방법
이제 원인을 찾았으니 해결하는 방법을 알아보겠습니다.
말 그대로 서버의 제한된 용량을 해제하면 되는데요.
웹서버에 접속하여 nginx의 설정을 변경해야 합니다.
서버에 접속한 다음 nginx의 설정파일인 nginx.conf 파일을 수정해야 합니다.
일반적으로 설치하였을 경우 위치는 etc/nginx/nginx.conf입니다.
관리자 권한이 필요하니 sudo를 통해 명령을 실행하고 nano 또는 vim 등
본인이 익숙한 에디터를 통해서 열어주시면 됩니다.
sudo nano /etc/nginx/nginx.conf
파일에 http 칸에 client_max_body_size 값을 설정하면 되는데요.
해당 필드가 없다면 기본값인 1Mbyte로 설정되어 있습니다.
용량을 별도로 설정할 수 있는데요. 해킹 등의 위협도 있으니
저는 5M로 설정해보겠습니다.
혹시 더 큰 용량이 필요하다면 해당 용량을 더 늘려서 설정해주시면 됩니다.
http {
# Set client upload size - 1Mbyte
client_max_body_size 5M;
수정이 완료되었다면, nginx를 재실행 합니다.
sudo service nginx reload
명령어를 통해 nginx를 재실행하시면 됩니다.
이제 해당 413에러는 더이상 발생하지 않습니다.
혹시 더 큰 용량이 필요하다면 또 설정값을 변경하셔서 사용하시기 바랍니다.
보안상 너무 큰 용량을 설정하는 것은 위험하니 파일 업로드시
제한을 적절하게 사용하시기 바랍니다.
그럼 즐거운 하루 보내세요.