- Katılım
- 21 May 2023
- Mesajlar
- 713
- Tepki
- 17
- Puan
- 18
Sunucu yapılandırmasıyla ilgili her rehberde bir isim geçiyor: nginx. Peki bu yazılım tam olarak ne yapıyor ve neden ayrı bir bileşen olarak anılıyor?
Aşağıda nginx'in süreç mimarisini, isteklerin nasıl dağıtıldığını, yapılandırma dosyasının rolünü ve kesintisiz yeniden yükleme mantığını üreticinin başlangıç kılavuzuna bakarak topluyoruz.
İki tür süreç
nginx başlangıç kılavuzu mimariyi tek cümlede özetliyor: nginx'in bir ana süreci ve birkaç işçi süreci bulunuyor.
Görev dağılımı da net. Ana sürecin temel amacı yapılandırmayı okumak ve değerlendirmek ile işçi süreçlerini yönetmek.
İsteklerin asıl işlenmesini ise işçi süreçleri yapıyor. Yani gelen trafiği karşılayan ana süreç değil, onun yönettiği işçiler.
- Ana süreç: Yapılandırmayı okur, işçileri yönetir.
- İşçi süreçleri: İstekleri işler.
- Sayı: Yapılandırmada belirlenir.
İstekler nasıl dağıtılıyor?
Kılavuz yöntemi de belirtiyor: nginx, istekleri işçi süreçleri arasında verimli biçimde dağıtmak için olay tabanlı bir model ve işletim sistemine bağlı mekanizmalar kullanıyor.
İşçi sayısı sabit değil. Kılavuza göre bu sayı yapılandırma dosyasında tanımlanıyor; belirli bir yapılandırma için sabitlenebiliyor ya da kullanılabilir işlemci çekirdeği sayısına göre otomatik ayarlanabiliyor.
Bu ayrıntı kapasite planlamasında işe yarıyor: çekirdek sayısıyla ilişkilendirilen bir yapılandırma, donanım değiştiğinde kendini uyarlıyor.
Püf nokta' Alıntı:İstekleri karşılayan işçi süreçleri; ana süreç yalnız yönetiyor. Yavaşlık şikâyetlerinde bakılacak yer işçi tarafı.
Yapılandırma dosyası neyi belirliyor?
Kılavuz davranışın kaynağını tek yere bağlıyor: nginx'in ve modüllerinin çalışma biçimi yapılandırma dosyasında belirleniyor.
Dosyanın adı ve yeri de standart. Varsayılan olarak nginx.conf adını taşıyor ve /usr/local/nginx/conf, /etc/nginx ya da /usr/local/etc/nginx dizinlerinden birinde bulunuyor.
Kılavuz bir de kritik uyarı veriyor: yapılandırma dosyasında yapılan değişiklikler, nginx'e yeniden yükleme komutu gönderilene ya da yeniden başlatılana kadar uygulanmıyor.
Bu, "ayarı değiştirdim ama bir şey olmadı" sorusunun en sık karşılaşılan cevabı.
Durdurma ve yeniden yükleme
Kılavuza göre nginx çalıştırılabilir dosyayı çalıştırarak başlatılıyor. Başladıktan sonra ise aynı dosyanın -s parametresiyle çağrılmasıyla denetleniyor.
Dört sinyal tanımlı: stop hızlı kapatma, quit düzgün kapatma, reload yapılandırma dosyasını yeniden yükleme ve reopen günlük dosyalarını yeniden açma.
Aradaki fark üretimde önemli. Kılavuzun örneğinde, işçi süreçlerinin mevcut istekleri sunmayı bitirmesini bekleyerek durdurmak için quit sinyali kullanılıyor.
Bir de yetki koşulu var: bu komut, nginx'i başlatan kullanıcıyla aynı kullanıcı altında çalıştırılmalı.
Yeniden yükleme neden kesintisiz?
Kılavuz reload sinyalinin işleyişini de anlatıyor: ana süreç yapılandırmayı yeniden yükleme sinyalini aldığında, yeni yapılandırma dosyasının söz dizimi geçerliliğini denetliyor.
Bu adım, hatalı bir yapılandırmanın doğrudan devreye girip servisi durdurmasını engelliyor.
Pratikte bu, ayar değişikliğinin sınanabilir hâle gelmesi demek: dosya değiştiriliyor, yeniden yükleme gönderiliyor, söz dizimi geçerli değilse mevcut yapılandırma çalışmaya devam ediyor.
Sunucunun yanıt veremediği durumların ne anlama geldiğini 503 hatası yazımızda ele almıştık.
Vekil olmak ne demek?
Kılavuzun saydığı görevlerden biri, aracın vekil sunucu olarak yapılandırılması. Bu düzende gelen istek doğrudan uygulamaya değil, önce bu katmana geliyor.
Katmanın önde durması iki şeyi mümkün kılıyor. Birincisi, aynı adres altındaki farklı yolların farklı arka uçlara yönlendirilebilmesi. İkincisi, arka uç değiştiğinde dışarıya görünen adresin sabit kalması.
FastCGI bağlantısı da benzer bir role işaret ediyor: dinamik içerik üreten süreç ayrı çalışıyor ve istek ona bu katman üzerinden iletiliyor.
Günlük dosyaları neden ayrı sinyal istiyor?
Dört sinyalden biri yalnız günlükleri hedefliyor. Bunun sebebi, günlük dosyalarının zamanla büyümesi ve düzenli olarak döndürülmesi.
Dosya taşındıktan sonra süreç eski dosyaya yazmayı sürdürebiliyor; reopen sinyali bu bağı yenileyerek yeni dosyaya geçilmesini sağlıyor.
Bu ayrıntı, disk dolmasıyla ilgili sorunların neden bazen "günlükler dönmüş ama yer açılmamış" biçiminde göründüğünü de açıklıyor.
Nerede karşınıza çıkıyor?
Kılavuz aracın üç tipik görevini sıralıyor: durağan içerik sunmak, vekil sunucu olarak yapılandırılmak ve bir FastCGI uygulamasıyla bağlanmak.
Bu üçlü, aracın konumunu da açıklıyor. Statik dosyaları doğrudan sunabiliyor, gelen isteği arkadaki bir uygulamaya iletebiliyor ve dinamik içerik üreten süreçlerle konuşabiliyor.
Yönlendirme kurallarının bu katmanda nasıl kurulduğunu 301 yönlendirme yazımızda, barındırma tarafındaki genel tabloyu ise hosting yazımızda anlatmıştık.
Sık Sorulan Sorular
nginx nedir?
Bir ana süreç ve birkaç işçi süreciyle çalışan, istekleri olay tabanlı modelle dağıtan sunucu yazılımı.
İşçi süreçleri ne yapıyor?
İsteklerin asıl işlenmesini onlar üstleniyor.
Kaç işçi süreci olur?
Yapılandırmada tanımlanıyor; sabitlenebiliyor ya da çekirdek sayısına göre otomatik ayarlanabiliyor.
Ayarı değiştirdim, neden uygulanmadı?
Değişiklikler yeniden yükleme komutu gönderilene veya süreç yeniden başlatılana kadar geçerli olmuyor.
stop ile quit farkı ne?
stop hızlı kapatma; quit ise işçilerin mevcut istekleri bitirmesini bekleyen düzgün kapatma.
Özetle
nginx, yapılandırmayı okuyan bir ana süreç ile istekleri işleyen işçi süreçlerinden oluşuyor. İstek dağıtımı olay tabanlı modelle yapılıyor, işçi sayısı yapılandırmaya ya da çekirdek sayısına bağlanıyor. Davranışın tamamı nginx.conf dosyasında tanımlı ve değişiklikler ancak yeniden yükleme sinyaliyle devreye giriyor; ana süreç bu sırada söz dizimini denetliyor.
Yapılandırma değişikliğinizi uygularken söz dizimi denetiminin sonucuna bakıyor musunuz?
Güncelleme: 3 Eylül 2026. nginx.org başlangıç kılavuzu kontrol edildi.
Dijital Dünyanıza Yön Veren Pusula