Apache HTTP Sunucusu Sürüm 2.3
Çok büyük sayıda sanal konak kullanıyorsanız ve bunların her biri için ayrı günlük kayıtları tutuyorsanız, Apache dosya tanıtıcılarını tüketebilir. Apache tarafından, dahili olarak 10-20 dosya tanıtıcıya ek olarak her hata günlüğü için bir ve her diğer günlük kaydı için bir dosya tanıcı kullanılır. Unix işletim sisteminde dosya tanıtıcıların sayısı süreç başına 64 taneyle sınırlıdır ve gerekirse donanıma bağlı olarak arttırılabilir.
Apache gerektiğinde bu sınırı kendisi arttırmaya çalışırsa da bu her zaman mümkün olmaz. Şöyle ki:
setrlimit()
sistem çağrısını
sağlamıyordur.setrlimit(RLIMIT_NOFILE)
çağrısı hiçbir işe
yaramıyordur (örneğin, Solaris 2.3).Böyle sorunlar karşısında yapabilecekleriniz:
<VirtualHost>
bölümlerinde günlük dosyası
belirtmeyerek günlük dosyası sayısını düşürürsünüz. (Bunun nasıl
yapılacağını öğrenmek için Günlük kayıtlarının
ayrıştırılması bölümüne bakınız.)
#!/bin/sh
ulimit -S -n 100
exec httpd
Günlük dosyalarını çok sayıda sanal konak için ortak olarak kullanıyorsanız, sanal konaklar için istatistiksel çözümlemeler yapmak amacıyla sırası geldiğinde bunları ayrıştırabilirsiniz. Bu işlem aşağıda anlatıldığı gibi yapılabilir.
İlk iş olarak, sanal konak bilgilerini günlük girdilerine eklemeniz
gerekir. Bu işlem, LogFormat
yönergesi ve
%v
biçem değişkeni ile yapılabilir. Günlük girdisi biçem
dizgesinin başına bunu ekleyiniz:
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
CustomLog logs/multiple_vhost_log vhost
Bu yapılandırma ile her günlük kaydının başında sanal konağın
ServerName
yönergesine belirtilen
ismi eklenir. (Günlük dosyalarınızın kişiselleştirilmesi ile ilgili daha
fazla bilgi için Günlük
Girdilerinin Kişiselleştirilmesi konusuna bakınız.)
Günlük dosyanızdaki kayıtları bileşenlere göre gruplamak isterseniz
split-logfile
programını kullanabilirsiniz. Bu programı Apache dağıtımının
support
dizininde bulabilirsiniz.
Programı aşağıdaki gibi çalıştırın:
split-logfile < /logs/multiple_vhost_log
Bu programı sanal konaklar için tuttuğunuz günlük dosyasının ismini
argüman olarak belirterek çalıştırdığınızda o dosyadaki kayıtlardan her
sanal konak için ayrı bir günlük dosyası
(konakadı.log
) üretilir.