Nginx vs Apache: Web Server anlaşmazlığı

İnternet, bugün bildiğimiz gibi, 90’lı yıllarda küresel “fetih” başlıyor. Tüm “Web” protokolleri, isteği doğru bilgisayara devam etmek için DNS ve IP sistemleri ile belirli web adreslerinden belge isteyen ziyaretçiler olarak sonuçlanabilir. İstenen web sayfalarını gönderen bu bilgisayar, web sayfalarını ziyaretçilere “sunacaktır”.
Ücretsiz demoyu deneyin
Web sayfaları temel olarak HTML belgeleridir. Ziyaretçilere farklı bir web sayfası sunabilmek için “Hizmetçi” makinesi bir sunucu programı gerektirir. Nginx vs Apache gibi yazılımlar istekleri işler, analiz eder ve daha sonra ziyaretçinin tarayıcısında görülecek ilgili belgeleri iade eder.
Nginx vs Apache
Nginx ve Apache, kullanıcı tarayıcılarına web sayfaları göndermek için kullanılan popüler web sunucularıdır. Bizim durumumuzda, barındırılan WordPress sitesinden. Hızlı İstatistikler:
Apache ilk olarak 1995’te piyasaya sürüldü, sonra Nginx 2004’te geldi.
Her ikisi de dünya çapında büyük şirketler Fortune 500 tarafından kullanılmaktadır.
Nginx pazar payı yıllarca büyümeye devam ediyor.
Bazı durumlarda, Nginx’in performans açısından rekabet avantajı vardır.
Destek
Apache İlk önce piyasaya sürüldüğünden beri Apache’yi keşfedeceğiz. İlk birkaç yıl içinde Berners-Lee takımından HTTPD ve NCSA HTTPD ekibinden sonra, Apache-1995’te piyasaya sürüldü-ilk kez piyasaya hakim oldu ve dünyanın en popüler web sunucusu oldu. Şu anda, hala pazar konumundadır, ancak miras nedenlerinin çoğu. Apache, Apache lisansı altında Apache Vakfı tarafından geliştiriliyor ve yönetiliyor.
Apache’nin adını nasıl aldığı hakkında iki farklı hikaye var. Bir versiyon, adın ünlü Kızılderili mirasından kaynaklandığını söylerken, diğeri isminin bir dizi yazılım yamasını takip eden “eksik sunucu” da bir oyun olduğunu söylüyor. Linux Apache pazar payı kısmen Apache’nin daha önce Red Hat/Centos ve Ubuntu gibi tüm ana Linux dağıtımlarıyla kurulmuş olması neden olur. Ubuntu Varsayılan Zararlılar

Apache’nin Linux dünyasındaki önemli rolünün bir örneği, sunucu sürecinin adı HTTPD’dir ve Apache’nin web sunucusu yazılımı ile eşanlamlılar yapmasıdır.
Web sunucusu pazarındaki ilk ciddi oyuncu olmanın yanı sıra, Apache proliferasyonunun bir kısmı yapılandırma sisteminden ve .htaccess dosyasından kaynaklanmaktadır. .htaccess Apache, yapılandırma için .htaccess kullanır. Bu dosyayı nasıl yapılandıracağınız, düzenleyeceğiniz ve çalışacağına dair birçok öğretici vardır, çünkü Apache’nin gelen istekleri işleme yolunu yapılandırmasında çok fazla esneklik sağlar. Bazı örnekler şunlardır: farklı aktarım kuralları, maksimum yükleme dosya boyutu, URL yeniden yazma, bellek sınırları, dizin koruması (HTPasswd), süresi dolmuş başlıklar, önbellek kontrol başlıkları, ekoding başlıkları, çerezler, sorgu dizesi manipülasyonu.
Öte yandan, Kinsta .htaccess dosyasını desteklemeyen Nginx kullanır. Ancak, .htaccess dosyanızın ayarları ve kuralları, Nginx’in yeniden yazma kurallarının sözdizimine kolayca “çevrilebilir”. Apache’nin ana “Pro” dan biri, kök sunucusunda – ana web sitesi dizini – dizin ağacındaki her seviye veya dizin kendi yapılandırmasıyla kendi .htaccess dosyasına sahip olabilir. Paylaşılan barındırma sağlayıcıları için bu bir rüyadır, çünkü aynı makinedeki yüzlerce kullanıcıya, web sitelerine başkalarını etkilemeden nasıl servis edildiğini yapılandırmanın bir yolunu verebilirler. Müşteriler, genel sunucu yapılandırmasına hiç dokunmadan paylaşılan barındırma ortamında çok fazla ayrıntı sınırlıdır. Resmi belgelerin dediği gibi: “Genel olarak, sadece .htaccess dosyasını yalnızca ana’ye erişiminiz olmadığında kullanabilirsiniz. sunucu yapılandırma dosyası. ” Bununla birlikte, bu esneklik, “.htaccess dosyasının gerçekten kullansa da kullanmasanız da performansın performansına neden olur!” .Htaccess dosyası her etkinleştirildiğinde, Apache tüm dizin ağaçlarını URL’den veya tüm daha yüksek seviyelerden istenen dosyadan kök sunucu dizini için geçmeli ve ardından her istek için içermelidir. Daha sonra bu dosyaları işlemek ve bu şekilde yapılandırılmış her dizin için kendinizi yeniden yapılandırmak gerekir.
WordPress web sitesi ile her şey çok karmaşık olabilir. Sıradan WordPress web siteleri farklı yönetmenlerden yüzlerce istek olabilir. Dizin türünden/WP-Content/Uploads/YYYY/MM genellikle bir sayfa yüklemesinde genellikle farklı ay dizinleri oluşturur. Sonra/wp-concent/temalar/ebeveyn-tema statik kaynaklar,/wp-content/temalar/alt tema kaynakları olacak: bu, JavaScript, CSS dosyası, resim içerecektir. Daha sonra, genellikle düzinelerce eklenti alt dizininden yüklenen statik dosyalara sahip /wp-concent /eklentiler olacak. Bu kaynakların her biri için Apache yapılandırmayı bulmak için tüm ağacı geçmelidir. Bir analiz, ana bilgisayarlardaki web siteleri için biraz yaygın olan tipik WordPress ayarlarının 42 yürütme içereceğini göstermiştir. HTAccess ayrı ve .htaccess dosyası için 249 ayrı ekran. Bu yalnızca web sunucusu düzeyinde. Ziyaretçilerin hala bir veritabanı sorgusu oluşturmak için tüm WordPress çağrı kazıklarını yürütmesini ve bir web sayfası oluşturmak ve ziyaretçilere göndermek için MySQL’e vermesini beklemeleri gerekiyor. Apache’yi popüler kılan bir diğer modül de dinamik modül sistemidir. Modül – kullanıcıların web sunucusunun işlevselliğini genişletmesine izin veren bir özellik olarak – Nginx ve Apache’de. Apache, kullanıcıların web sunucusu yüklendikten ve kullanıldıktan ve daha sonra gerektiği gibi etkinleştirildikten/devre dışı bırakıldıktan sonra modülü yüklemelerine olanak tanır. Debian tabanlı dağıtım, herhangi bir yapılandırma dosyasını düzenlemek zorunda kalmadan bu modülün aktivasyonuna ve devre dışı bırakılmasına izin veren komutlara sahiptir: A2Enmod ve A2Dismod.
Apache’nin standart dağılımının bir parçası olarak gelen modüllerin resmi listesi buradadır ve bu, sıkıştırma, şifreleme, günlüğe kaydetme, yönlendirme istekleri ve gelişmiş sözdizimiyle yanıtlar gibi daha karmaşık şeylere kadar değişen şeyleri içerir. Nginx Nginx (Nginx veya Nginx olarak da yazılmıştır), 2004 yılında Rus geliştiricisi Igor Sysoev tarafından ilk kez yayınlandığı zaman ortaya çıktı. Owen Garrett’in dediği gibi, Nginx proje yöneticisi: “Nginx, Apache web sunucusu performansının sınırlamalarının üstesinden gelmek için özel olarak yazıldı.” Sunucu ilk olarak 2002 yılında Rambler.ru web sitesi için bir ölçek olarak yapıldı. İki sürümde görünür: açık kaynak, BSD tipi lisans ve NGINX Plus, ek şirket desteği ve özellikleri ile. Statik dosyaları sunmak ve Apache kurulumunun önünde yüklerin veya ters proxy’nin dengelenmesi olarak. Web geliştikçe ve donanım kullanımının son hız ve verimliliğinin her birini sıkma ihtiyacı, daha fazla olgun yazılım sayesinde Apache’yi Nginx ile tamamen değiştirmeye başlar.
Nginx Inc F5 Networks tarafından satın alındı
Mart 2019’da Nginx Inc., F5 Networks tarafından 670 milyon dolara satın alındı. O zaman, TechCrunch tarafından bildirildiği gibi, Nginx sunucusu “yaklaşık 1.500 müşteriyle 375 milyon web sitesine” güç verdi.
W3Techs’ten elde edilen verilere göre, Nginx pazar payı büyümeye devam ediyor, Apache’yi teşvik ediyor ve ilk etaptan çıkarıyor:
Bir web sunucusunun kullanımı

Bu veriler, küresel olarak bir bütün olarak web sunucusu ile ilgilidir, ancak en iyi bir milyon web sitesinden bir örnek alırsak, Nginx bir süredir oradadır: Nginx kullanan web sitelerinin yüzdesi
Google arama trendleri de bu gerçeği yansıtıyor gibi görünüyor:
Google Arama Trendleri: Nginx vs Apache

Netcraft anketi, Apache’nin Nisan 2019’da Nginx tarafından devralındığını gösteriyor.
Bültenlere Kaydolun

Trafiğimizi%1000’den fazla nasıl artırdığımızı bilmek ister misiniz? Haftalık bültenimizi içerideki WordPress insanlar hakkında ipuçlarıyla alan 20.000’den fazla insana katılın!
Şimdi abone olun

Nginx Nginx yapılandırmasının Apache gibi bir yapılandırma sistemi yoktur, ancak çok daha verimli ve daha hızlı olmasına rağmen, Nginx perakende barındırma sağlayıcıları ile yaygın olarak kullanılmamaktadır. Apache’nin yaptığı gibi ortak ortamda parlamadı.
Kinsta Hosting Mimarisi.
Öte yandan, dediğimiz gibi, dizin seviyesi yapılandırmasına izin vermeyerek Nginx, Apache’ye göre önemli bir avantaj elde etti. Wiki Nginx’te performans etkilerini karşılaştıran makaleler var:
Nginx vs apache.png performansının etkisi

Nginx Modül Sistemi Nginx modülü, onu daha premium bir seçim olarak konumlandıran bir şey daha. Nginx modüllerinin genellikle üretim sırasında aktive edilmesi gerekir, bu da daha fazla teknik becerinin dahil olduğu anlamına gelir ve staling sonrası modüllerin eklenmesi biraz daha karmaşıktır. 2016 yılında, 1.9.11 sürümü ile birçok şey değişti ve resmi dinamik/doğrulanmış modülün deposu ödeme yapan kullanıcılar için ayrılmıştır. Mayıs 2019’da QUIC ve HTTP/3 desteğinin geliştirilmesine başladığını duyurdular. Önbellekleme Sorunları:
Nginx vs Apache Caching – Basitleştirmek istiyorsak – web sitesi ziyaretçileri için içerik hazırlamak olarak tanımlanabilir, böylece “kapıyı çaldıklarında”, aradıkları içeriği bulmak için gitmenize gerek yoktur. . . Hazırladınız ve beklemeden onlara verdiniz. Apache gibi, diğer altyapıda elde edilen performansı azaltmak için tipik Nginx ayarları sunucu ve son kullanıcı arasındaydı. Bu durumda, statik içeriği herhangi bir zamanda korunan orijinal sunucudan almaya gerek kalmadan saklayabilir. Nginx’i mandiri web sunucusu olarak kullanırsak – Kinsta LXC kapsayıcısında olduğu gibi – böyle olması gerekmez. Nginx kendi statik içeriğini sunmada çok etkilidir. Sonra dinamik bir önbellek veya sayfa önbellek meselesi var. WordPress web sitesi senaryosunda bu, her URL için üretilen tüm WordPress sayfalarının bellekte veya diskte saklanması anlamına gelir. Fastcgi önbellekleme, standart Nginx kurulumunda yerel olarak mevcuttur. Bu basit, çok güçlü ve nadiren kullanılan Nginx özelliklerinden biri. Bunu eşdeğer Apache ile karşılaştırmak için, Apache’nin diğer modüllerin aksine, hatta kayma eğilimi gösteren bir mod_cache moduna sahip olduğunu bilmelisiniz. Dolayısıyla Apache ile kullanılan standart önbellek çözümü HTTP Vernik Hızlandırıcıdır. Vernik özel bir endüstriyel çözüm olmasına rağmen, en son testlerden bazıları Nginx önbelleğe veriliyor. Kinsta’da, Dinamik WordPress önbellekleme için Nginx’i ve önbellek sayfaları üzerinde granüler kontrol sağlayan özel bir önbellek eklentisi ile birlikte ve statik varlıklar Kinsta CDN tarafından önbellek olarak kullanıyoruz.

Slow WordPress barındırmasından sıkıldınız mı? Neredeyse anında ziyaretçilerinize içerik göndermek için sunucu düzeyinde tam sayfa önbelleğini kullanıyoruz. Barındırma paketine bakın Bir isteğim var: Nginx vs Apache Apache ve Nginx arasındaki en büyük fark, talebin üstesinden gelme şeklinin altında yatan mimaridir. Apache, “ağ bağlantı noktasını makineye bağlamak, istek almak ve çocukları istekleri işlemek için göndermekten sorumlu olan MPM-S veya çok işleme modülleri ile istekleri işler.
Apache’nin başlangıcından beri var olan en eski MPM, ön domuz modülüdür. Bu modül tek başına Apache performansının kötü itibarı için kredilendirilebilir. Bu modda, Apache her istek üzerinde bir iş parçacığı olan yeni bir sürece yol açtı. Mod_php ile kullanılan bu modül, Apache sunucusunun CSS dosyaları veya resimleri sunmanız gerekse bile, PHP tercümanlarını her işlemde yerleştirdiği anlamına gelir. Bu verimsiz. Prefork modülü varsayılan modül olarak Apache ile donatılmıştır. Ayrıca HTTP/1 ile bağlantıyı da sınırlar. Sonraki yıllarda Apache, MPM multi-undas işçileri geliştirmişti ve bundan sonra MPM etkinliği. Her ikisi de birçok Apache performans sorununu hafifletiyor. PHP-FPM’ye geçmek, Apache’nin .htaccess kullanımını ortadan kaldırmanın yanı sıra bugün rekabetçi bir çözüm kalmasına izin verir, ancak bu tür hedefini yener. Nginx, ashnchronous, engelsiz olay güdümlü mimari kullanır. Farkı açıklamak için:

Linux/Unix dünyasında, programı yürütme süreci. UTAS sürecin bir parçasıdır ve bir süreç yürütmesinde bazı UTA’lar olabilir. Bunu tarayıcı penceresinde birçok sekme olarak düşünün. Bu şekilde bir program daha hızlı yürütmek için birkaç CPU-S ve çok çekirdekli, çoklu ipucu CPU-S kullanabilir. Farkı açıklayan Linus Torvalds’ı okuyabilirsiniz. Kısacası, Apache her bağlantı için bir işlem kullanır (ve UTA’lar kullanan MPM çalışanları ile). Yükselen bir trafik olarak, hızla çok pahalı hale gelir. Yeni bir süreç hayal edebilir veya bilgisayar önyükleme veya bir program başlatma gibi bir tehdit oluşturabiliriz. En hızlı bilgisayarda bile, hala zaman gerektirir. Web sitesi şu anda bir sayfa yüklemede yüzlerce talepte bulunurken, bu hızla artar. MPM olayı optimizasyon açısından daha da ileri gitti, ancak bazı testler Nginx’ten daha hızlı çalışamayacağını gösterdi. Özellikle Nginx’in hizmet verdiği statik dosyalar hakkında konuştuğumuzda, Apache tarafından yapılan talebi iki katına çıkardı. Nginx ideal olarak CPU/inti başına bir işçi süreci vardır. Nginx işçisi sürecindeki fark, her birinin işçi başına giren yüz binlerce ağ bağlantısını ele alabilmesidir. Her bağlantı için UTA veya yeni işlem yapmanıza gerek yoktur. CloudFlare, MaxCDN ve ortaklarımız KeyCDN gibi ana içerik dağıtım ağının veya Netflix gibi web siteleri – içeriklerini göndermek için önemli olduğunu düşünmesinin nedeni budur. Nginx kullanan şirketlerin listesi her şeyi dahil etmek için çok uzun, bu yüzden WordPress’in arkasındaki özel bir şirket olan Automattic ile bitireceğiz.
com. Automattic, 2008 yılında WordPress.com’a Nginx’e dengeleyen tüm yüklerini dönüştürdü (burada okuyabilirsiniz) ve sunucu kazıklarını tamamen Nginx’e taşıyın. Gerçek hayatta kontrol edin, web sitelerinin üretimde hangi kullandıklarını kontrol etmek istiyorsak, genellikle HTTP başlık yanıtında bulabiliriz. Bu, web sitesinde sağ tıklamamız gerektiği anlamına gelir> İnceleyin, geliştiricide bir ağ paneli seçeceğiz, ardından web sitesini yeniden yükleyeceğiz. Web sitesinde yer alan tüm kaynakları göreceğiz. Belirli kaynakları ve başlık sekmelerini seçersek, genellikle sunucu bilgilerini göreceğiz. Web sitesi bir CDN kullanıyorsa, web sitesi HTTP hızlandırıcısını kullanıyorsa, bir sunucu satırında Cloudflare veya Vernik gibi bir şey görebiliriz. Bu, CPanel, Apache ve PHP ile paylaşılan barındırma ayarlarını kullanan bir WordPress sitesine örnektir: RTPAN HTTP Apache
Bu Nginx’te bir web sitesi:
Nginx HTTP başlığı

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir