on
서버오류-413 Request Entity Too Large (Feat. modsecurity)
서버오류-413 Request Entity Too Large (Feat. modsecurity)
728x90
반응형
서버오류는 일단 사람을 깜짝 놀라게 한다.
서버에 파일을 업로드 할 때 발생한다면 대게는 업로드할 수 있는 파일 용량의 한계를 넘겼기 때문이겠지만 워드프레스로 사이트를 제작하는 도중에 '저장하기'나 '업데이트'를 눌렀는데 발생한다면 정말 남감하다. 아래와 같은 상황이다.
아파치 웹서버를 사용중이라면 LimitRequestBody 지시문을 살펴보자. 이는 본문의 크기(size)에 제한을 설정하는데 사용되는데 0(무제한) ~ 2,147,483,647(2GB)까지 설정할 수 있다. 단위는 byte이며, 기본값이 0이다. 웹서버의 설정에서 해당 지시문에 대한 특별한 설정이 없다면 아파치의 에러로그를 확인해보자. 아래는 해당 홈페이지의 에러로그이다.
ModSecurity: Request body no files data length is larger than the configured limit (131072).. Deny with code (413)
역시 mod security에서 발생하는 오류이다.
modsecurity의 설정(/etc/httpd/conf.d/mod_security.conf)중에서 SecRequestBodyLimit는 설정값을 넘기게 되면 아마도 500 internal server error가 발생했던 것으로 기억한다. 이는 body size의 limit를 설정하는 것으로 무작정 크게 설정하는 것 보다는 오류가 발생하지 않는 선에서 최소로 잡아주는게 좋을 것 같다.....는 개인적인 생각이다. 물론 서버에 업로드 할 수 있는 파일 용량의 한계가 너무 작다면 이 값을 수정해야 한다. (웹서버의 설정과 php.ini, .htaccess 등의 설정을 포함해서...)
SecRequestBodyNoFileLimit의 값은 기본값인 131072(128KB)이다. 이는 SecRequestBodyLimit와 비슷하지만 업로드 파일을 제외한 body size의 limit의 설정이다. 기본값이 살짝 작은감이 있는데 위의 그림에서와 같은 오류가 발생한다면 대략 1MB(1,048,576 byte) ~ 3MB(3,145,723 byte) 정도로 설정하면 충분할 것이다.
mod_security의 설정을 변경 한 후에는 웹서버를 재시동 해야 한다.
728x90
반응형
from http://aegypius.tistory.com/150 by ccl(S) rewrite - 2021-12-24 12:59:06