Bizimle iletişime geçin

info@serverion.com

Bizi arayın

+1 (302) 380 3902

Optimum Web Sunucusu Performansı için Nginx Yapılandırmalarında Uzmanlaşma

Optimum Web Sunucusu Performansı için Nginx Yapılandırmalarında Uzmanlaşma

Daha hızlı web siteleri ve daha iyi mi istiyorsunuz? sunucu performansı? Nginx yardımcı olabilir. Olay odaklı tasarımıyla Nginx, binlerce bağlantıyı verimli bir şekilde yönetir ve bu da onu yüksek trafikli web siteleri ve gerçek zamanlı uygulamalar için en iyi tercih haline getirir. Ancak tüm potansiyelini ortaya çıkarmak için doğru yapılandırma anahtardır.

Önemli Noktalar:

  • Performansı Artırın: Kaynak kullanımını azaltmak ve yanıtları hızlandırmak için çalışan süreçlerini ayarlayın ve sıkıştırmayı etkinleştirin.
  • Trafiği Yönet: Trafiği sunucular arasında dağıtmak ve ağır yükler için optimize etmek amacıyla yük dengelemeyi kullanın.
  • Güvenli Bağlantılar: Arka uç sunucularını aşırı yüklemeden gelişmiş güvenlik için SSL sonlandırmayı yapılandırın.
  • Gerçek Zamanlı Uygulamalar: Gerçek zamanlı platformlarda kesintisiz iletişim için WebSocket desteğini ayarlayın.
  • Etkili Bir Şekilde İzleyin: Sunucu sağlığını ve performansını izlemek için Prometheus ve Grafana gibi araçları kullanın.

Hızlı Kurulum Örnekleri:

  • İşçi Süreçleri: CPU çekirdeklerine eşleştirin (işçi_işlemleri 4;).
  • Sıkıştırma: Gzip'i etkinleştir (gzip açık; gzip_comp_level 6;).
  • Önbelleğe alma: Hız için proxy önbelleğini yapılandırın (proxy_önbellek_yolu /var/cache/nginx;).
  • Yük Dengeleme: Trafiği round-robin veya en az bağlantı ile dağıtın.

Profesyonel İpucu: Sunucunuzun sorunsuz çalışmasını sağlamak için ayarlarınızı düzenli olarak izleyin ve ince ayarlayın. İster yüksek trafikli web sitelerini, ister statik içerikleri veya gerçek zamanlı uygulamaları yönetiyor olun, bu yapılandırmalar tüm farkı yaratabilir.

Performans Ayarlama NGINX Açık Kaynak ve NGINX Plus

nginx

Önemli Nginx Yapılandırma Dosyaları ve Ayarları

Nginx sunucunuzdan en iyi şekilde yararlanmak, yapılandırma dosyalarını anlamak ve temel ayarları ince ayarlamakla başlar. Bilmeniz gerekenlerin bir dökümü aşağıdadır.

Nginx Yapılandırma Dosyalarını Anlama

Nginx ayarları iki ana alana ayrılmıştır:

  • Küresel ayarlar: Bulundu /etc/nginx/nginx.conf
  • Siteye özgü ayarlar: Bulunduğu yer /etc/nginx/siteler-kullanılabilir/

Değişiklikleri uygulamadan önce yapılandırmanızı şu şekilde test edin: nginx -t hatasız olduğundan emin olmak için.

Çalışan İşlemlerini ve Bağlantılarını Ayarlama

Çalışan süreçleri ve bağlantıları sunucunuzun ne kadar iyi performans gösterdiğinde büyük rol oynar. İşte bunları kurmak için hızlı bir kılavuz:

Ayar Açıklama Örnek Değer
işçi_işlemleri Çalışan süreçlerinin sayısı CPU çekirdekleriyle eşleşir
işçi_bağlantıları Çalışan başına maksimum bağlantı 1024 – 2048
canlı_kalma_zaman_aşımı Bağlantı zaman aşımı 65 saniye

İpucu: Bu değerleri sunucunuzun donanımına göre ayarlayın.

Örneğin sunucunuzda 4 adet CPU çekirdeği varsa yapılandırmanız şu şekilde görünebilir:

işçi_işlemleri 4; olaylar { işçi_bağlantıları 1024; } 

Çalışan işlemleri optimize ettikten sonra sıkıştırma ve önbelleğe almayı etkinleştirerek performansı daha da artırabilirsiniz.

Gzip Sıkıştırma ve Önbelleğe Alma Kullanımı

Sıkıştırma ve önbelleğe alma bant genişliğini azaltmaya ve yükleme sürelerini iyileştirmeye yardımcı olur. Bunları yapılandırma yöntemi şöyledir:

Gzip Sıkıştırmayı Etkinleştir:

gzip açık; gzip_comp_level 6; gzip_types metin/düz metin/css uygulaması/json uygulaması/javascript; 

Önbelleği Ayarla:

proxy_cache_path /var/cache/nginx düzeyleri=1:2 anahtarlar_bölgesi=bir:10m etkin değil=60m; proxy_cache bir; proxy_cache_geçerli 200 302 10m; proxy_cache_geçerli 404 1m; 

The proxy_önbellek_yolu yönergesi, arka uçtaki yükü azaltan sık erişilen içerik için bir önbellek bölgesi oluşturur. Ayrıca şunu da kullanabilirsiniz açık_dosya_önbelleği Sık erişilen dosyaları bellekte depolayarak disk kullanımını azaltmak.

Yük Dengeleme ve SSL için Gelişmiş Teknikler

Çalışan işlem optimizasyonu ve önbelleğe alma üzerine kurulu bu teknikler, trafik dağıtımını ve güvenliğini iyileştirmeye odaklanır.

Yük Dengelemeyi Ayarlama

Nginx, gelen trafiği birden fazla sunucuya yaymak için güçlü araçlar sunar. İşte temel bir yapılandırma:

yukarı akış arka ucu { # Varsayılan: dengeli dağıtım için sıralı döngü sunucusu localhost:8080; sunucu localhost:8081; sunucu localhost:8082; # En az bağlantı için yorum işaretini kaldırın (dengesiz iş yükleri için daha iyi) # least_conn; } sunucu { listen 80; konum / { proxy_pass http://backend; proxy_set_header Ana Bilgisayar $host; proxy_set_header X-Real-IP $remote_addr; } } 
  • Sıralı turnuva Benzer yanıt sürelerine sahip sunucular için idealdir.
  • En Az Bağlantılar İsteklerin karmaşıklığı değiştiğinde daha iyi çalışır ve yavaş sunucuların aşırı yüklenmesini önlemeye yardımcı olur.
  • Oturum kalıcılığı için etkinleştirin IP Karması Kullanıcıları tutarlı bir şekilde aynı sunucuya yönlendirmek.

SSL Sonlandırmayı Yapılandırma

SSL sonlandırma, şifreleme görevlerini Nginx'e kaydırarak arka uç sunuculardaki iş yükünü azaltır. Bobcares'in araştırması, bunun SSL el sıkışma gecikmesini 50%'ye kadar azaltabileceğini öne sürüyor.

SSL sonlandırmayı yük dengelemeyle birleştirmenin yolu:

http { yukarı akış arka uç { sunucu localhost:8080; sunucu localhost:8081; } sunucu { 443 ssl'yi dinle; sunucu_adı example.com; ssl_certificate /yol/certificate.crt; ssl_certificate_key /yol/özel/anahtar.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers açık; ssl_session_cache paylaşılan:SSL:10m; konum / { proxy_pass http://arka uç; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Önemli SSL İpuçları:

  • Yapışmak TLS 1.2 ve 1.3 Daha iyi güvenlik için.
  • Daha güçlü şifreleme için sunucu taraflı şifrelere öncelik verin.
  • Performansı artırmak için oturum önbelleğini etkinleştirin.

Nginx'i Belirli İhtiyaçlara Göre Özelleştirme

Yüksek Trafikli Web Siteleri için Nginx'i Optimize Etme

Yüksek trafikli web siteleri için, Nginx'in yapılandırması ağır yükleri etkili bir şekilde idare edecek şekilde ince ayarlanmalıdır. Anahtar parametreleri ayarlamak sunucu yanıt verme hızını ve genel performansı önemli ölçüde iyileştirebilir.

Arabellek Boyutu Ayarlamaları

http { istemci_gövde_tampon_boyutu 16k; istemci_başlık_tampon_boyutu 4k; istemci_maksimum_gövde_boyutu 8m; büyük_istemci_başlık_tamponları 4 8k; } 

Bu ayarlar, disk G/Ç'sine göre bellek kullanımını önceliklendirerek istek işlemeyi hızlandırır. Örneğin, istemci_gövdesi_tampon_boyutu istekler sırasında geçici dosya yazma ihtiyacını azaltır.

Verimli Log Yönetimi

http { access_log /var/log/nginx/access.log birleştirilmiş tampon=32k temizleme=5s; hata_log /var/log/nginx/error.log uyarı; } 

32 KB'lık bir tampon ve 5 saniyelik bir temizleme aralığının kullanılması, günlüklerin doğru ve güncel kalmasını sağlarken disk işlemlerini en aza indirir.

Zaman Aşımı Ayarları

http { istemci_gövde_zaman_aşımı 12; istemci_başlık_zaman_aşımı 12; gönderme_zaman_aşımı 10; } 

Bu zaman aşımı değerleri, yavaş istemcilerin sunucu kaynaklarını gereksiz yere tüketmesini önlemeye yardımcı olur.

Bu ayarlamalar yapıldıktan sonra Nginx, WebSockets gibi sürekli iletişim gerektiren uygulamalar için de özelleştirilebilir.

WebSocket Desteği için Nginx'i Yapılandırma

WebSocket'lar gerçek zamanlı uygulamaların kritik bir bileşenidir. Nginx'i WebSocket bağlantılarını işleyecek şekilde düzgün bir şekilde kurmak, yük altında bile sorunsuz performans sağlar.

harita $http_upgrade $connection_upgrade { varsayılan yükseltme; '' kapat; } sunucu { dinle 80; sunucu_adı example.com; konum /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Yükseltme $http_upgrade; proxy_set_header Bağlantı $connection_upgrade; proxy_set_header Ana Bilgisayar $host; proxy_cache_bypass $http_upgrade; # WebSocket bağlantıları için zaman aşımı ayarları proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

Anahtar WebSocket Yapılandırma Ayrıntıları:

Direktif amaç
proxy_http_sürümü WebSocket desteği için HTTP/1.1'i etkinleştirir
proxy_okuma_zaman_aşımı Veri paketleri arasındaki maksimum süreyi ayarlar
proxy_gönderme_zaman_aşımı Veri göndermek için maksimum süreyi tanımlar
proxy_önbellek_atlama WebSocket trafiği için önbelleğe almayı devre dışı bırakır

The harita Yönerge, bağlantı yükseltmelerini etkin bir şekilde yöneterek WebSocket iletişiminin sorunsuz olmasını sağlar.

Kötüye kullanımı önlemek için WebSocket bağlantılarına hız sınırlaması uygulanabilir:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... WebSocket yapılandırmasının geri kalanı } } 

Bu kurulum, IP'leri saniyede 20 isteklik bir patlamayla 5 istekle sınırlandırır ve hizmet kullanılabilirliğini korurken DoS saldırılarına karşı koruma sağlar.

Nginx Performansı ve İzlemesi için En İyi Uygulamalar

İlk kurulumun ötesinde, Nginx yapılandırmanızı optimize etmek, değişen iş yüklerini etkili bir şekilde karşılayabilmesini sağlar.

Odaklanılacak Temel Alanlar

Nginx performansını iyileştirmek, sunucunuzun ne kadar verimli çalıştığını doğrudan etkileyen belirli ayarların ince ayarını yapmayı içerir.

Çalışan Süreçlerini Yönetmek

The işçi_sınırı_dosyası yönergesi dosya tanımlayıcılarını yönetmek için çok önemlidir. Sunucunuzun yoğun trafik dönemlerinde sınırlara ulaşmadan birden fazla eş zamanlı bağlantıyı işleyebilmesini sağlar:

işçi_sınırı_dosyası_yok 65535; 

Açık Dosya Önbelleğini Kullanma

Açık dosya önbelleği, sık erişilen dosyalar için meta verileri önbelleğe alarak disk G/Ç'sini en aza indirir ve bu da statik içerik dağıtımını hızlandırır:

http { open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors açık; } 

Bu optimizasyonlar sağlandıktan sonra, sürekli performansın sağlanması ve daha fazla ayarlamaya ihtiyaç duyulan alanların belirlenmesi için düzenli izleme yapılması zorunlu hale gelir.

Nginx Performansını İzleme

İzleme, sunucunuzun nasıl performans gösterdiğini takip etmenize ve herhangi bir darboğaz veya verimsizliği ortaya çıkarmanıza yardımcı olur. İzlenecek temel ölçümler arasında istek oranları, hata oranları ve kaynak kullanımı bulunur. Prometheus ve Grafana gibi araçlar bu verileri toplamayı ve görselleştirmeyi kolaylaştırır.

Tavsiye edilen İzleme Araçları

Alet amaç Anahtar Metrikler
Prometheus Canlı performans verilerini toplar Talep oranları, yanıt süreleri, hata oranları
Grafana Performans eğilimlerini görselleştirir CPU kullanımı, bellek tüketimi, trafik desenleri
htop Sistem kaynak kullanımını izler İşlem kullanımı, bellek tahsisi

Performans Ölçümlerini Ayarlama

Aşağıdakileri yapılandırarak Nginx'te durum izlemeyi etkinleştirin:

konum /nginx_durumu { stub_status açık; erişim_günlüğü kapalı; 127.0.0.1'e izin ver; hepsini reddet; } 

Bu kurulum şu konularda fikir verir:

  • Aktif bağlantılar
  • Toplam kabul edilen bağlantılar
  • İstek işleme istatistikleri
  • Okuma, yazma ve bekleme bağlantıları

Günlükleri Etkili Şekilde Analiz Etme

Arabellekli günlük kaydı, günlük yazmalarını gruplayarak disk zorlanmasını azaltabilir. Bu, günlüklerinizin doğruluğundan ödün vermeden sunucu performansının korunmasına yardımcı olur.

"Performans verilerine dayalı düzenli izleme ve ayarlama, optimum sonuçlara ulaşmak için çok önemlidir. Aynı anda çok fazla değişiklik yapmaktan kaçınmak önemlidir, çünkü bu sorun gidermeyi zorlaştırabilir."

Nginx için Barındırma Seçenekleri

Doğru barındırma ortamını seçmek, Nginx yapılandırmalarını ince ayarlamak kadar önemlidir. Doğru platform, optimizasyonlarınızın en iyi sonuçları vermesini sağlar.

Özellikleri Serverion Barındırma

Serverion

Serverion, Nginx için özel olarak tasarlanmış, olağanüstü performans ve güvenilirlik sağlayan bir barındırma platformu sunuyor.

Depolama ve Performans
Serverion, yapılandırma dosyalarına ve günlüklerine erişimi hızlandırmak için G/Ç gecikmesini azaltan Nginx için optimize edilmiş SSD depolama kullanır.

Güvenlik Altyapısı
Kurumsal düzeyde DDoS korumasıyla Serverion, Nginx'in güvenliğini artırır. Bu, saldırılar sırasında çalışma süresini garanti eder ve Nginx'in yük dengeleme özelliklerini tamamlar.

Kaynak Türü Özellikler Nginx için Avantajlar
İşlemci Xeon Dört Çekirdek Çalışan süreçlerini etkin bir şekilde yönetir
Veri deposu 16 GB'a kadar Önbelleğe alma performansını artırır
Depolama SSD tabanlı Dosya erişimini hızlandırır
Bant genişliği Yüksek kapasiteli Güvenilir yük dengelemeyi destekler

Ölçeklenebilir Altyapı
Serverion'un planları, büyüyen trafik ihtiyaçlarınıza uyum sağlayacak şekilde tasarlanmıştır. Bu, Nginx kurulumunuzun performans kaybı yaşamadan artan talebi karşılayabilmesini sağlar.

"Nginx'i barındırırken düzenli izleme ve performans optimizasyonu esastır. Doğru barındırma ortamı, optimum sunucu performansını sürdürmek için gerekli kaynakları ve araçları sağlamalıdır."

Uzman Desteği
Serverion'un 7/24 destek ekibi, ihtiyaçlarınıza göre uyarlanmış yapılandırma değişiklikleri ve performans ayarlamaları konusunda yardımcı olabilecek Nginx uzmanlarını içerir.

Sonuç ve Son İpuçları

Önemli Noktaların Özeti

Nginx'ten en iyi şekilde yararlanmak, net ve adım adım bir yaklaşıma odaklanmak anlamına gelir. Sunucunuzun donanım sınırlarını ve trafik modellerini anlayarak başlayın. Oradan, sunucunuzun sorunsuz ve verimli bir şekilde çalıştığından emin olmak için çalışan süreçleri, önbelleğe alma ve yük dengeleme gibi ayarları ince ayarlayın.

Başlamak İçin Adımlar

  1. Yapılandırmaları Doğrula: Herhangi bir değişikliği canlı olarak yapmadan önce, nginx -t yapılandırmalarınızda hata olup olmadığını kontrol etmek için.
  2. Çekirdek Optimizasyonlar:
    • Kibrit işçi_işlemleri sunucunuzun CPU çekirdeklerine (örneğin, işçi_işlemleri 4 (4 çekirdekli bir sunucu için).
    • Dosya boyutlarını 50-70% oranında küçültmek için gzip sıkıştırmasını etkinleştirin.
    • İstekleri daha verimli bir şekilde karşılamak için tampon boyutlarını ayarlayın.
  3. Gelişmiş Özellikler:
    • Bağlantıları güvenli hale getirmek için SSL sonlandırmayı ayarlayın.
    • İçerik önbelleğe almayı uygun son kullanma tarihi ayarlarıyla yapılandırın.
    • Trafik düzenlerinize göre uyarlanmış yük dengelemeyi kullanın.
    • Performansı izlemek için Prometheus ve Grafana gibi araçları yükleyin.

Performans İzleme: Sunucunuzun performansını takip etmek önemlidir. Kullanıcıları etkilemeden önce herhangi bir sorunu yakalamak için istek oranları, yanıt süreleri ve kaynak kullanımı gibi ölçümleri takip edin.

"Nginx'i barındırırken düzenli izleme ve performans optimizasyonu esastır. Yapılandırma ayarlarının ve izleme araçlarının doğru kombinasyonu, zaman içinde optimum sunucu performansını garanti eder."

SSS

Sorun gidermenize ve performansı iyileştirmenize yardımcı olmak için Nginx yapılandırmalarıyla ilgili bazı yaygın soruların yanıtlarını burada bulabilirsiniz.

Nginx'in önbelleğe alıp almadığını nasıl kontrol edebilirim?

Nginx'in içerik önbelleğe alıp almadığını kontrol etmek için HTTP yanıt başlıklarını inceleyin. Şunlara bakın:

  • X-Önbellek: "HIT" değeri içeriğin önbelleğe alındığı anlamına gelir.
  • X-Önbellek-Durumu: Mevcut önbelleğe alma durumunu gösterir.

Başlıkları görüntülemek için bu komutu kullanabilirsiniz:

curl -I https://websiteniz.com 

Not: Bu başlıkların Nginx kurulumunuzda yapılandırıldığından emin olun; aksi takdirde yanıtta görünmezler.

İşte tamponları etkili bir şekilde ayarlamak için bir yapılandırma örneği:

istemci_gövde_arabellek_boyutu 10K; istemci_başlık_arabellek_boyutu 1K; istemci_maksimum_gövde_boyutu 8m; büyük_istemci_başlık_arabellekleri 4 4k; 

WebSocket desteğini nasıl etkinleştirebilirim?

WebSocket desteğini etkinleştirmek için, proxy_pass yönerge WebSocket arka uç sunucusuna işaret eder. Ayrıntılı talimatlar için WebSocket yapılandırması hakkındaki önceki bölüme bakın.

SSL'i güvenli bir şekilde nasıl yapılandırabilirim?

SSL'yi güvenli bir şekilde kurmak için aşağıdaki yapılandırmayı kullanın:

sunucu { 443 ssl dinle; sunucu_adı example.com; ssl_sertifikası /cert.crt'ye/giden/yol; ssl_sertifika_anahtarı /cert.anahtarına/giden/yol; ssl_protokolleri TLSv1.2 TLSv1.3; ssl_şifreleri YÜKSEK:!aNULL:!MD5; } 

Nginx'i yüksek trafik için nasıl optimize edebilirim?

Yüksek trafikli web siteleri için şu temel alanlara odaklanın:

  • Kibrit işçi_işlemleri CPU çekirdek sayısına ve artışa işçi_bağlantıları daha fazla bağlantıyı yönetmek için.
  • Sunucu yükünü azaltmak için etkili önbelleğe alma ayarlayın.
  • İstekleri daha verimli bir şekilde işlemek için tampon boyutlarını ayarlayın.

"Nginx'i barındırırken düzenli izleme ve performans optimizasyonu esastır. Yapılandırma ayarlarının ve izleme araçlarının doğru kombinasyonu, zaman içinde optimum sunucu performansını garanti eder."

İlgili Blog Yazıları

tr_TR