2017년 6월 18일 일요일

[해결] evasive20:error client denied by server

 [evasive20:error] [pid 6652] [client 192.168.0.1:59604] client denied by server configuration: /var/www/.........................경로......................................., referer: 



이미지가 많은 웹페이지를 만들어보면, 
/var/log/apache2/error.log 
에서 위와 같은 에러 메세지를 만날 경우가 있다.


페이지 새로 고침을 연타하다보면, 403 에러가 뜨면서 사이즈를 막고, 
or
페이지 내에 이미지(사진, 등)가 500개 이상 있을 경우, 
403 에러가 이미지 썸네일 마다 뜨는 건 아니지만, 이미지 중 상당 수가 공백으로 나오는 경우가 있다.


많은 시도와 검색이 이었고, 지금까지 포기하고 있다가 
오늘 해결하게 되었다.


본인 아파치 버전은 Apache2 / 2.4.7 이다.
(버전 확인 명령어 : apache2 -v )



sudo vi /etc/apache2/apache2.conf
-----------------------------------------------------
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 20
DOSSiteCount 800
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 30
</IfModule>
-----------------------------------------------------
에 이 부분을 추가해준다.



#DOSHashTableSize   : 클라이언트의 접속을 받아들이는 것. 
                               접속이 많은 사이트에서는 이 값을 크게 늘린다.
#DOSPageCount       : 같은 페이지를 20번 요청했을 때, 클라이언트에게 403 에러로 응답.
#DOSSiteCount         : 지정한 시간 동안 총 히트수(HTML과 이미지를 포함한 모든 요청)                                  가 800을 초과할 경우 해당 클라이언트에게 403 에러로 등답. 
                               이미지 많은 사이트는 이 값을 적당히 조절.
#DOSPageInterval
#DOSSiteInterval
#DOSBlockingPeriod  : 403 에러가 나면 30초 안에 재접속하면 다시 reset 된다.



:wq

sudo service apache2 restart



바로 DOSSiteCount 이 부분이었다. 
한 번 10으로 해서 새로고침 해보고, 800으로 해서 새로고침 해보면, 
이미지가 나오는 부분에서 확연한 차이를 볼 수 있을 것이다.
페이지에 이미지가 많은데, 10으로 설정하면 이미지 20개만 뜨고 나머진 안 뜬다.




해결.




도움을 받은 사이트

댓글 없음:

댓글 쓰기