Nginx Ayarları Nasıl Yapılmalı?

N

Worker Processes ve Worker Connections

Ayarlamamız gereken ilk iki değişken, worker processes ve worker connections değişkenleridir. Her bir ayara atlamadan önce, bu yönergelerin her birinin neyi kontrol ettiğini anlamamız gerekir. Worker_processes yönergesi, Nginx’in sağlam omurgasıdır. Bu yönerge, sanal sunucumuza birçok işlemin uygun IP ve port (lar) la bağlantı kurduktan sonra spawn yapmalarını sağlamakla sorumludur. Çekirdek başına 1 işlem çalıştırmak yaygın bir uygulamadır. Bunun üzerindeki herhangi bir şey sisteminize zarar vermez ancak boşta olan işlemleri genellikle  gereksiz kullanım yaratacaktır.

 

Worker_processes öğesini ayarlamanız gereken sayı sayısını bulmak için, kurulumunuzdaki çekirdek miktarına göz atmanız yeterlidir. Hostazor 512MB paketini kullanıyorsanız muhtemelen bir çekirdek olacaktır. Daha büyük bir pakete hızlı bir şekilde yeniden boyutlandırma yaparsanız, çekirdeğinizi tekrar kontrol etmeniz ve buna göre bu numarayı ayarlamanız gerekir. Bunu, cpuinfo’yu kontrol ederek başarabilirsiniz:

 

grep processor /proc/cpuinfo | wc -l
 

Yukarıdaki komut ile ssh konsolu üzerinden cpu miktarını öğrenebilirsiniz.Diyelim ki, 1 değerini döndürüyoruz. Bu, makinemizdeki çekirdek miktarıdır.

Worker_connections komutu, çalışanımızın aynı anda Nginx tarafından kaç kişiye hizmet verebileceğini anlatır. Varsayılan değer 768’dir; Ancak, her tarayıcının genellikle en az 2 bağlantı / sunucu açtığını göz önüne alırsak, bu sayının yarısı olabilir. Bu yüzden, çalışan bağlantılarımızı tam potansiyeline ayarlamamızın nedeni budur. Bir ulimit komutu göndererek çekirdek sınırlamalarını kontrol edebiliriz:

ulimit -n

Küçük bir makinede (512MB ), bu sayı muhtemelen 1024 değerini alacaktır, bu da iyi bir başlangıç değeridir.

Yapılandırmamızı güncelleyelim:

sudo nano /etc/nginx/nginx.conf

Sonra aşağıdaki kısmı bulup aşağıdaki değerlere göre güncelleyelim ;

worker_processes 1;
worker_connections 1024;

Unutmayın, sunulabilecek bağlantı miktarı çekirdek miktarı ile çarpılabilir. Bu durumda, saniyede 1024 istemci olarak ayarlayabiliriz. Bununla birlikte bu ayar, keepalive_timeout yönergesiyle daha da azaltılabilir.

nginx ayarları

Destekleyiciler (Buffers)

Yapabileceğimiz inanılmaz derecede önemli bir destekleyici boyutudur. Arabellek boyutları çok düşükse, Nginx geçici bir dosyaya yazarak diskte sürekli okuma ve yazmaya neden olur. Bu nedenle herhangi bir ayar yapmadan önce anlamamız gereken birkaç yönerge var.

Client_body_buffer_size: Bu, istemci arabellek boyutunu işler, yani Nginx’e gönderilen POST eylemleri. POST eylemleri genellikle form gönderimleridir.

Client_header_buffer_size: Önceki yönergeye benzer şekilde yalnızca istemci header boyutunu işler. Tüm amaç ve amaçlar için “1K” genelde bu yönergeyle uygun bir boyuttur.

Client_max_body_size: Bir istemci isteğinin izin verilen maksimum boyutu. Eğer maksimum boyut aşılırsa, Nginx bir 413 hatası verir ve istemciyi engeller.

Large_client_header_buffers: Yoğum istemciler için header  arabelleklerinin maksimum sayısı ve boyutu.

Bu ayarların varsayılan değerleri aşağıdaki gibidir.

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;

Zaman aşımı

Zamanaşımı da performansı önemli ölçüde artırabilir.

Client_body_timeout ve client_header_timeout yönergeleri, bir sunucunun istekten sonra bir istemci gövdesi veya istemci üstbilgisinin gönderilmesini bekleyeceği zamandan sorumludur. Ne bir gövde veya başlık gönderilmiyorsa, sunucu 408 hatası veriyor veya İstek süresi doldu hatası verir.

Keepalive_timeout, istemci ile canlı tutulan bağlantılar için zaman aşımı tayin eder. Basitçe söylemek gerekirse, Nginx bu süre sonra kullanıcıyla bağlantıları kapatacaktır.

Son olarak, send_timeout cevabın tüm aktarımı üzerinde değil yalnızca iki okuma işlemi arasında kurulmuştur; Bu süre sonunda istemci hiçbir şey almazsa, Nginx bağlantıyı kapatıyor demektir.

Genel ve varsayılan ayarlar aşağıdaki gibidir.

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

Gzip Sıkıştırma

Gzip, Nginx ile ulaşan ağ aktarımının miktarını azaltmaya yardımcı olabilir. Bununla birlikte, sunucu cpu döngülerini boşa harcamaya başlayacağından, gzip_comp_level değerini ayarlarken dikkatli olun.Genel ve varsayılan ayarlar ;

gzip             on;
gzip_comp_level  2;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Statik Dosya Önbelleği

Değişmeyen ve düzenli olarak sunulan dosyalar için önbellekleme  ayarlamak daha iyi bir seçimdir. Bu yönerge, genel konfigürasyon dosyasına  eklenebilir.Aşağıdaki kodlar varsayılan mantıkla önbellekleme için yazılmıştır.

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}

Sunucunuzdaki dosya türleriyle eşleştirip, yukarıdaki dizideki dosya türlerinden herhangi birini ekleyip kaldırabilirsiniz.

Günlüğe kaydetme

Nginx, sunucuya gelen her isteği bir günlük dosyasına kaydeder. Bunu izlemek için analiz kullanıyorsanız, bu işlevi kapatmak isteyebilirsiniz. Sadece access_log yönergesini düzenleyin:

access_log off;

İşlemleriniz bittikten sonra ayarları kaydedip nginx’i yeniden başlatmanız yeterli olacaktır. Herhangi bir hata alırsanız Hostazor Soru & Cevap kısmına sorununuz iletebilirsiniz.

Yeniden başlatmak ;

sudo service nginx restart

Unutmayın , nginx çok hassas bir sistemdir. Ayar yaparken lütfen dikkatli davranın. Mutlu Günler! 🙂

1 Yorum

Bir Cevap Yazın

Yazar ; hostazor

Facebook Sayfamız

Bizi Twitter’da takip et

%d blogcu bunu beğendi: