웹서버를 운영하다 보면 Apache log 가 엄청나게 많이 쌓인다.
logrotate 가 실행되고 있다면 어느 정도 로그가 정리가 되겠지만 아니라면 로그가 쌓여서 서버가 엄청 느려지거나 서버가 다운될 수도 있다.
ErrorLog 나 CustomLog 를 완전히 안쌓이게 할 수도 있고 특정파일 또는 이미지 관련 로그가 안나오게 할 수도 있다.
...
SetEnvIfNoCase Request_URI ".(swf|png|gif|jpg|ico)$" NO_LOG
CustomLog logs/mydomain.com-access_log common env=!NO_LOG
...
mod_setenvif 모듈이 사용가능한지 먼저 확인이 필요하다.
/etc/httpd/conf/httpd.conf 파일에서 아래 부분이 있는지 확인하자.
LoadModule setenvif_module modules/mod_setenvif.so
".(swf|png|gif|jpg|ico)$" 이 부분에 이미지파일은 아니지만 자주 사용되는 js, css 를 추가해줘도 된다.
=> ".(swf|png|gif|jpg|js|css|ico)$"
▶ 아파치 재시작 없이 로그 지우기
cat /dev/null > /var/log/httpd/access_log
아파치 데몬이 수행중일대 rm 명령어로 로그를 지우면 그 이후로 로그가 기록되지 않는다.
아파치를 멈추고 rm 명령어로 지우고 다시 시작하던지 아니면 위와 같은 방법으로 해주던가 해야한다.
▶ 아파치 로그 안쌓이게 하기
ErrorLog /dev/null
CustomLog /dev/null common
httpd.conf 에 적용할 수도 있고 특정 VirtualHost 에만 적용할 수도 있다.
위 내용을 넣고 아파치를 재시작(service httpd restart, /etc/init.d/httpd restart) 하면된다.