Scaleable NGINX Configuration: Igor Sysoev @nginxconf 2014
İçindekiler:
- Erişim Günlüğünü Yapılandırma
- Hata Günlüğünü Yapılandırma
- Günlük Dosyalarının Konumu
- Nginx Günlük Dosyalarını Okuma ve Anlama
- Sonuç
Nginx, İnternet'teki en büyük sitelerin bazılarının yüklenmesinden sorumlu açık kaynaklı, yüksek performanslı bir HTTP ve ters proxy sunucusudur. NGINX web sunucularını yönetirken, gerçekleştireceğiniz en sık görevlerden biri günlük dosyalarını kontrol etmektir.
Günlüklerin nasıl yapılandırılacağını ve okunacağını bilmek, ayrıntılı hata ayıklama bilgileri sağladıkları için sunucu veya uygulama sorunlarını giderirken çok kullanışlıdır.
Nginx, olaylarının kayıtlarını iki tür günlükte yazar: erişim günlükleri ve hata günlükleri. Erişim günlükleri istemci istekleri hakkında bilgi, hata günlükleri ise sunucu ve uygulama sorunları hakkında bilgi yazar.
Bu makalede, Nginx erişim ve hata günlüklerinin nasıl yapılandırılacağı ve okunacağı anlatılmaktadır.
Erişim Günlüğünü Yapılandırma
Bir istemci isteği işlendiğinde, Nginx erişim günlüğünde yeni bir olay oluşturur. Her olay kaydı bir zaman damgası içerir ve istemci ve istenen kaynak hakkında çeşitli bilgiler içerir. Erişim günlükleri, ziyaretçilerin yerini, ziyaret ettikleri sayfayı, sayfada ne kadar zaman geçirdiklerini ve çok daha fazlasını gösterebilir.
log_format
yönergesi, günlüğe kaydedilen iletilerin biçimini tanımlamanıza olanak tanır.
access_log
yönergesi günlük dosyasının konumunu ve kullanılan biçimi etkinleştirir ve ayarlar.
access_log
yönergesinin en temel sözdizimi aşağıdaki gibidir:
access_log log_file log_format;
Burada
log_file
, günlük dosyasının tam yoludur ve
log_format
, günlük dosyası tarafından kullanılan biçimdir.
Erişim günlüğü
http
,
server
veya
location
yönergeleri bloğunda etkinleştirilebilir.
Varsayılan olarak, erişim günlüğü ana Nginx yapılandırma dosyasının içindeki
http
yönergesinde genel olarak etkinleştirilir.
http {… access_log /var/log/nginx/access.log;… }
Daha iyi bir bakım için, her sunucu bloğu için ayrı bir erişim günlük dosyası ayarlamanız önerilir.
server
yönergesinde ayarlanan
access_log
yönergesi,
http
(üst düzey) yönergesinde ayarlanan erişim
access_log
geçersiz kılar.
http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }
Hiçbir günlük biçimi belirtilmezse, Nginx önceden tanımlanmış birleştirilmiş biçimi şu şekilde kullanır:
log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
Günlük biçimini değiştirmek için varsayılan ayarı geçersiz kılın veya yeni bir tanesini tanımlayın. Örneğin,
X-Forwarded-For
üstbilgisini gösteren değerle birleştirilmiş biçimi genişletecek olan main adlı yeni bir günlük biçimi tanımlamak için
http
veya
server
yönergesine aşağıdaki tanımı ekleyin:
log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
Yeni biçimi kullanmak için, adını aşağıda gösterildiği gibi günlük dosyasından sonra belirtin:
access_log /var/log/nginx/access.log custom;
Erişim günlüğü çok yararlı bilgiler sağlarken. disk alanı kaplar ve sunucu performansını etkileyebilir. Sunucunuzda kaynak azsa ve yoğun bir web siteniz varsa, erişim günlüğünü devre dışı bırakmak isteyebilirsiniz. Bunu yapmak için
access_log
yönergesinin değerini
off
:
Hata Günlüğünü Yapılandırma
Nginx, uygulama ve genel sunucu hataları hakkındaki mesajları hata günlüğü dosyasına yazar. Web uygulamanızda hatalar yaşıyorsanız, sorun giderme için ilk hata mesajı günlüğüdür.
error_log
yönergesi, hata günlüğünün konumunu ve önem düzeyini etkinleştirir ve ayarlar. Aşağıdaki formu alır ve bir
http
,
server
veya
location
bloğu içinde ayarlanabilir:
error_log log_file log_level
log_level
parametresi günlük kaydı düzeyini ayarlar. Aşağıda, önem derecelerine göre (düşükten yükseğe) listelenen düzeyler verilmiştir:
-
debug
- Mesajlardadebug
ayıklama.info
- Bilgi mesajları.notice
- Bildirimler.warn
- Uyarılar.error
- Bir istek işlenirkenerror
oluştu.crit
- Kritik konular. Hızlı bir işlem gerektirir.alert
- Uyarılar. Derhal harekete geçilmelidir. - Acil durum. Sistem kullanılamaz durumda.
Her günlük düzeyi daha yüksek düzeyleri içerir. Örneğin, günlük düzeyini
warn
üzere ayarlarsanız, Nginx ayrıca
error
,
crit
,
alert
ve ortaya
emerg
mesajları da günlüğe
emerg
.
log_level
parametresi belirtilmediğinde, varsayılan olarak
error
.
Varsayılan olarak,
error_log
yönergesi ana nginx.conf dosyasının içindeki
http
yönergesinde tanımlanır:
http {… error_log /var/log/nginx/error.log;… }
Erişim günlükleriyle aynı şekilde, her sunucu bloğu için ayrı bir hata günlüğü dosyası ayarlamanız önerilir; bu, daha yüksek düzeylerden devralınan ayarı geçersiz kılar.
Örneğin, domain.com hata günlüğünü
warn
için aşağıdakileri kullanırsınız:
http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }
Yapılandırma dosyasını her değiştirdiğinizde, değişikliklerin etkili olması için Nginx hizmetini yeniden başlatmanız gerekir.
Günlük Dosyalarının Konumu
Varsayılan olarak Ubuntu, CentOS ve Debian gibi çoğu Linux dağıtımında, erişim ve hata günlükleri
/var/log/nginx
dizininde bulunur.
Nginx Günlük Dosyalarını Okuma ve Anlama
cat
,
less
,
grep
,
cut
,
awk
, vb. Standart komutları kullanarak günlük dosyalarını açabilir ve ayrıştırabilirsiniz.
Aşağıda, varsayılan birleştirme Nginx günlük biçimini kullanan erişim günlük dosyasından bir örnek kayıt verilmiştir:
192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
Kaydın her alanının ne anlama geldiğini inceleyelim:
-
$remote_addr
-192.168.33.1
- İstekte bulunan istemcinin IP adresi.$remote_user
--
- HTTP Kimliği Doğrulanmış Kullanıcı. Kullanıcı adı ayarlanmadığında, bu alanda-
. -"$request"
-"GET /
- İstek türü, yolu ve protokolü.$status
-200
- Sunucu yanıt kodu.$body_bytes_sent
-396
- Sunucu yanıtının bayt olarak boyutu."$http_referer"
-"-"
- Yönlendirmenin URL'si."$http_user_agent"
-Mozilla/5.0…
- İstemcinin kullanıcı aracısı (web tarayıcısı).
Günlük dosyasını gerçek zamanlı olarak izlemek için
tail
komutunu kullanın:
Sonuç
Günlük dosyaları, sunucu sorunları ve ziyaretçilerin web sitenizle nasıl etkileşimde bulunduğu hakkında yararlı bilgiler sağlar.
Nginx, erişim ve hata günlüklerini ihtiyaçlarınıza göre yapılandırmanıza olanak tanır.
nginxWindows`ta dosyalara veya klasörlere erişirken Erişim Engellendi hatasını kaldırın
Dosyalara ve klasörlere erişmeye veya dosya ve klasörlerle çalışmaya çalışırken Erişim Engellendi veya diğer hatalar. Sorunu çözmek için deneyebilirsiniz.
Kolay Erişim eklentisi: Firefox`un <699 Durum Çubuğundan Herhangi Bir Program Yüklemek> İndir ve Kolay Erişim Ekleme Ekle tarayıcınızın durum çubuğundan en sevdiğiniz sistem komutlarına ve programlarınıza kolay erişim sağlamak için Firefox`a gidin.
Windows`da çalışırken hızlı erişim gerektiren belirli programlar var. Bu programları anında başlatma görevi sıkıcıdır. Örneğin, Microsoft Paint`i kullanarak bir resmi düzenlemek isterseniz, `Charms-bar` seçeneğine gitmeniz, Paint yazmanız ve daha sonra başlatmak için ilgili seçeneği tıklatmanız gerekir.
Windows`da Microsoft Yükleyici günlüğünü etkinleştir & Verbose günlüğünü kaydet
Microsoft Installer günlüğe kaydetmeyi ve Microsoft Fix`i kullanarak Windows 7 / 8`de Verbose günlüğünü nasıl kolayca etkinleştireceğinizi öğrenin. O.