nginx’in optimal ayarları, istek işleme hızını artırır. Sanal hostingde, ayarlar genellikle hosting sağlayıcısının uzmanları tarafından yapılır. Ancak, web sitesi sanal sunucuda barındırıldığında, tüm ayarların manuel olarak yapılması gerekir.
Web sitesinin daha hızlı çalışması için, nginx web sunucusunun daha hızlı çalışmasını sağlayacak bir yapılandırmanın mevcut olup olmadığını kontrol etmenizi öneririz.
1. Temel Ayarları Karşılaştıralım
nano /etc/nginx/nginx.conf
1.1 Sunucudaki çekirdek sayısını otomatik olarak belirleyen seçenek
worker_processes auto;
1.2 Sıkıştırma Ayarları
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/ xml+rss text/javascript;
1.3 http/2’yi Etkinleştirelim
Web host dosyasındaki server bölümüne ssl’den sonra http2’yi ekleyelim. Bu seçeneği yalnızca https için eklemelisiniz.
server {
listen 89.xx.77.xx:443 ssl http2;
listen [2a01:xx:4:x::xx]:443 ssl http2;
1.3.1 HTTP2’nin Çalışmasını Kontrol Edelim
nginx -t
service nginx restart
curl -I https://your-domain.tld
Aşağıdaki gibi bir çıktı almalısınız:
HTTP/2 200
server: nginx
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
cache-control: no-cache, private
date: Tue, 26 Mar 2024 10:39:35 GMT
1.4 Maksimum Bağlantı Sayısını Ayarlayalım
Varsayılan olarak 768, bu değeri işletim sisteminde belirtilen değere değiştirelim.
1.4.1 Değeri Kontrol Edelim
ulimit -n
1024
1.4.2 Bu Değeri nginx Ayar Dosyasında Tanımlayalım
nano /etc/nginx/nginx.conf
events {
worker_connections 1024;
}
1.5 Bellek Arabellek Boyutunu Ayarlayalım
Varsayılan olarak nginx, bir bellek sayfası boyutunda arabellek kullanır. Daha fazla isteği önbellekten işleyebilmesi için, http {} bölümünde değerleri değiştirelim.
nano /etc/nginx/conf.d/domain-tld.conf
http {
...
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
...
}
1.6 İstek İşleme Bekleme Süresini Ayarlayalım
Yüksek yük altında ve düşük bekleme süresi ile nginx, php-fpm’den yanıt alamadığında istemciye hata mesajı verebilir, bu durumda bekleme süresini artırmak gerekir.
Bekleme süresinin artırılması, flood veya ddos saldırıları durumunda olumsuz etkileyebilir, çünkü bu sunucudan daha fazla kaynak talep edecektir.
nano /etc/nginx/conf.d/domain-tld.conf
http {
...
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
...
}
Artık nginx istekleri daha yüksek hızda işleyecektir. Tüm değişiklikleri yaptıktan sonra yapılandırma dosyasını hatalara karşı kontrol edin ve değişiklikleri uygulamak için hizmeti yeniden başlatın.
nginx -t
service nginx restart
Tamamlandı.