Apache2 tuning cz. 1, wyłączenie zbędnych wpisów w access.log

Standardowa (bardzo uboga) konfiguracja vhost (virtualhost) w Apache2:

    ServerName marcinmazurek.com.pl
    DocumentRoot "/sites/marcinmazurek.com.pl"
    ErrorLog /var/log/apache2/marcinmazurek.com.pl_error.log
    CustomLog /var/log/apache2/marcinmazurek.com.pl_access.log combined


Przy takiej konfiguracji Apache2 w logach (marcinmazurek.com.pl_access.log) będzie zapisywane każdy request, nawet z zapytaniem o obrazek, plik css itp. Przy jednym zapytaniu o stronę http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb serwer zapisuje jeszcze z 10 innych zapytań, o obrazki, pliki stylów, javascripty.
Przykład (plik /var/log/apache2/marcinmazurek.com.pl_access.log):

 
client: 73.190.1.109 - - [25/Nov/2014:17:38:46 +0100] "GET /przelicznik-kb-na-mb-na-gb HTTP/1.1" 204 226 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36"
client: 31.182.50.246 - - [25/Nov/2014:15:32:41 +0100] "GET /sites/all/modules/helion_drupal_plugin-master/gfx/xkoszszary.jpg.pagespeed.ic.IRLpscobuy.jpg HTTP/1.1" 200 2138 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
client: 31.182.50.246 - - [25/Nov/2014:15:32:41 +0100] "GET /sites/marcinmazurek.com.pl/themes/mm/images/xlogo3.png,q234sdsad.pagespeed.ic.L_Ypkw7LkR.jpg HTTP/1.1" 200 2401 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
client: 79.163.128.156 - - [25/Nov/2014:15:35:32 +0100] "GET /sites/all/modules/helion_drupal_plugin-master/gfx/xkoszszary.jpg.pagespeed.ic.IRLpscobuy.jpg HTTP/1.1" 200 2126 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
client: 79.163.128.156 - - [25/Nov/2014:15:35:33 +0100] "GET /sites/marcinmazurek.com.pl/themes/mm/images/xlogo3.png,q234sdsad.pagespeed.ic.L_Ypkw7LkR.jpg HTTP/1.1" 200 2390 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
client: 77.223.219.236 - - [25/Nov/2014:15:36:19 +0100] "GET /sites/all/modules/helion_drupal_plugin-master/gfx/xkoszszary.jpg.pagespeed.ic.IRLpscobuy.jpg HTTP/1.1" 200 2126 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"

...

Takie informacje w logach nie mają dla nas większego znaczenia. Natomiast obciążają serwer zwiększają ilość operacji I/O dysku. Skoro te dane nie są dla nas przydatne to wyłączmy je. Poniższy przykład wyłącza zapisywanie do loga wybranych plików statycznych, takich jak: .gif|.jpg|.jpeg|.png|.bmp|.swf|.css|.js|.ico
Przykład:
 

    ServerName marcinmazurek.com.pl
    DocumentRoot "/sites/marcinmazurek.com.pl"
    ErrorLog /var/log/apache2/marcinmazurek.com.pl_error.log

    SetEnvIf Request_URI "(\.gif|\.jpg|\.jpeg|\.png|\.bmp|\.swf|\.css|\.js|\.ico|\.GIF|\.JPG|\.JPEG|\.PNG|\.BMP|\.SWF|\.CSS|\.JS|\.ICO)" nolog
    CustomLog /var/log/apache2/marcinmazurek.com.pl_access.log combined env=!nolog



Efekt jest taki, że teraz przy jednym zapytaniu o stronę http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb serwer zapisuje tylko zapytanie o stronę www, bez dodatkowych plików
Przykład: (plik /var/log/apache2/marcinmazurek.com.pl_access.log)

 
client: 73.190.1.109 - - [25/Nov/2014:17:38:46 +0100] "GET /przelicznik-kb-na-mb-na-gb HTTP/1.1" 204 226 "http://marcinmazurek.com.pl/przelicznik-kb-na-mb-na-gb" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36"


Wymagane jest włączenie modułu mod_setenvif