Web sunucusu, bir tarayıcıdan gelen isteği karşılayan ve karşılığında web sayfasını, görseli ya da veriyi geri gönderen yazılımdır. Aynı kelime, bu yazılımın çalıştığı makine için de kullanılır. Adres çubuğuna bir site adı yazdığınızda arka planda birkaç adım yaşanır: Alan adı bir IP adresine çözülür, tarayıcı o adresteki sunucuya bağlanır, web sunucusu isteği işler ve cevabı gönderir. Bu yazıda web sunucusunun nasıl çalıştığını, en yaygın üç yazılımı (Apache, Nginx, IIS), barındırma seçeneklerini ve temel güvenlik önlemlerini anlatıyoruz. Sitenin kendisini geliştirme tarafı için web tasarım ve yazılım sayfamıza bakabilirsiniz.
Web sunucusu nasıl çalışır?
Tarayıcı ile web sunucusu HTTP protokolüyle konuşur. Bugün neredeyse bütün siteler bu trafiği TLS ile şifreleyen HTTPS kullanır. Web sunucusunun işi iki türlü olabilir:
- Statik içerik sunmak: Diskte hazır duran HTML dosyalarını, görselleri, stil ve betik dosyalarını olduğu gibi göndermek.
- Dinamik içerik üretmek: İsteği PHP, .NET, Node.js ya da Python gibi bir uygulamaya iletmek; uygulama veritabanından veriyi okuyup sayfayı o an oluşturur, web sunucusu da sonucu tarayıcıya gönderir.
Kurumsal bir sitenin iletişim formu, bir e-ticaret sitesinin sepeti ya da bayilerinizin sipariş girdiği bir portal ikinci türdendir. Bu durumda web sunucusunun arkasında bir uygulama ve bir veritabanı da çalışır; güvenlik ve performans üçünün birlikte düşünülmesini gerektirir.
Apache, Nginx ve IIS
Web sunucusu yazılımları arasında en yaygın üç isim şunlardır:
Apache HTTP Server
Apache Yazılım Vakfı’nın açık kaynak web sunucusudur. Modüler yapısıyla bilinir; URL yönlendirme, SSL ve önbellek gibi özellikler modüllerle eklenir. Klasör bazında ayar yapmayı sağlayan .htaccess dosyaları, paylaşımlı hosting ortamlarında yaygın kullanılmasının nedenlerinden biridir.
Nginx
Açık kaynak bir web sunucusudur; yüksek sayıda eş zamanlı bağlantıyı az kaynakla karşılayabilmesiyle öne çıkar. Web sunucusu olarak kullanıldığı gibi, çoğu zaman uygulama sunucularının önünde ters vekil sunucu (reverse proxy) ve yük dengeleyici olarak da çalışır. Sık görülen bir yapı, Nginx’in önde statik dosyaları sunması ve dinamik istekleri arkadaki uygulamaya iletmesidir.
Microsoft IIS
Internet Information Services, Windows Server ile birlikte gelen web sunucusu rolüdür. ASP.NET uygulamaları için doğal ortamdır ve grafik yönetim konsoluyla yönetilir. Windows ağırlıklı yapılarda, şirket içi portallar ve .NET ile geliştirilmiş iş uygulamaları için sık tercih edilir.
| Apache | Nginx | IIS | |
|---|---|---|---|
| İşletim sistemi | Linux ağırlıklı, Windows’ta da çalışır | Linux ağırlıklı, Windows’ta da çalışır | Windows Server |
| Lisans | Açık kaynak | Açık kaynak (ticari sürümü de var) | Windows Server lisansına dahil |
| Öne çıkan kullanım | PHP siteleri, paylaşımlı hosting | Yoğun trafik, ters vekil sunucu, yük dengeleme | ASP.NET uygulamaları, şirket içi portallar |
Hangisinin seçileceği çoğu zaman sitenin hangi teknolojiyle yazıldığına bağlıdır. Bir PHP sitesini IIS’te, bir .NET uygulamasını Linux’ta çalıştırmak mümkündür; ama doğal ortamında çalışan bir yazılımın bakımı daha kolaydır.
Barındırma seçenekleri
Web sunucusunun nerede duracağı, sitenin büyüklüğüne ve kontrol ihtiyacınıza göre değişir.
| Seçenek | Ne demek? | Kimler için? |
|---|---|---|
| Paylaşımlı hosting | Bir sunucu birçok site arasında paylaşılır; yönetim sağlayıcıdadır | Az trafikli tanıtım siteleri |
| Bulut sunucu | Size ayrılmış bir sanal sunucu; kaynaklar ihtiyaçla artırılabilir | Kurumsal siteler, e-ticaret, özel yazılımlar |
| Sunucu barındırma (colocation) | Kendi fiziksel sunucunuz veri merkezinde durur | Özel donanım ya da lisans gereksinimi olanlar |
| Ofisteki sunucu | Web sunucusu şirket binasında çalışır | Yalnızca şirket içi kullanılan uygulamalar |
Dışarıya açık bir siteyi ofisteki sunucudan yayınlamak genellikle önerilmez. Ofis internetinin kesilmesi siteyi de durdurur; daha önemlisi, internete açık bir sunucu ofis ağının içinde durursa, ele geçirildiğinde saldırgana iç ağa uzanan bir yol verir. Veri merkezinde barındırma ve bulut sunucu seçeneklerini veri merkezi çözümleri sayfamızda anlattık.
Web sunucusu güvenliği
İnternete açık her sunucu, açıldığı andan itibaren otomatik taramalarla karşılaşır. Temel önlemler şunlardır:
- Güncel tutun. Web sunucusu yazılımı, işletim sistemi, PHP ya da .NET sürümü ve içerik yönetim sistemi eklentileri düzenli güncellenmelidir. Açıkların büyük kısmı, yaması çıkmış ama uygulanmamış yazılımlardan kaynaklanır.
- Yalnızca HTTPS kullanın. Geçerli bir SSL/TLS sertifikası kurun, HTTP isteklerini HTTPS’e yönlendirin ve eski, güvensiz protokol sürümlerini kapatın.
- Gereksizi kapatın. Kullanılmayan modülleri, örnek sayfaları ve dizin listelemeyi devre dışı bırakın. Sunucu sürüm bilgisini hata sayfalarında göstermeyin.
- Yönetim erişimini sınırlayın. Sunucuya SSH ya da uzak masaüstü erişimi herkese açık olmamalı; yalnızca belirli IP adreslerinden ya da VPN üzerinden yapılmalıdır. Yönetim panelleri güçlü şifre ve iki aşamalı doğrulamayla korunmalıdır.
- Uygulama ile veritabanını ayırın. Veritabanı internete açık olmamalı, uygulama veritabanına en az yetkili bir kullanıcıyla bağlanmalıdır.
- Kayıtları tutun ve izleyin. Erişim ve hata kayıtları, bir saldırı girişimini ya da bozulan bir sayfayı erken gösterir.
- Yedek alın. Hem site dosyalarının hem veritabanının yedeği, sunucudan ayrı bir yerde durmalıdır.
Şirket içi ağınızı ve internete açılan servislerinizi koruyan güvenlik duvarı tarafı için ağ güvenliği sayfamıza göz atabilirsiniz.
Performans için pratik adımlar
Yavaş açılan bir site, ziyaretçiyi ilk saniyelerde kaybeder. Sunucu tarafında sık işe yarayan adımlar şunlardır: Metin dosyalarını sıkıştırarak göndermek, statik dosyalar için tarayıcı önbelleğini açmak, HTTP/2 desteğini etkinleştirmek, dinamik sayfalarda uygulama önbelleği kullanmak ve görselleri doğru boyutta sunmak. Sunucunun kaynakları da izlenmelidir; bellek ya da disk sınırına dayanan bir sunucuda yazılım ayarlarıyla kazanılacak hız sınırlıdır.
Unna ile web barındırma
Web siteleri ve iş uygulamaları için sunucu tarafını, yazılım tarafıyla birlikte ele alıyoruz:
- Önce dinleriz. Sitenizin ya da uygulamanızın hangi teknolojiyle çalıştığını, trafiğini ve kimlerin kullandığını öğreniriz.
- Birlikte planlarız. Paylaşımlı hosting mi, bulut sunucu mu, barındırma mı sorusunu maliyet ve kontrol dengesiyle cevaplarız.
- Kurar ve yayına alırız. Web sunucusunu güvenlik ayarlarıyla kurar, alan adı, SSL sertifikası ve yedeklemeyi devreye alırız.
- Yanınızda kalırız. Güncellemeleri uygular, sunucuyu izler, siteniz büyüdükçe kaynakları birlikte planlarız.
Sunucunun günlük yönetimi için sunucu kurulum ve yönetimi hizmetimize bakabilir ya da mevcut sitenizin barındırma yapısını değerlendirmek için bize ulaşabilirsiniz.



