Apache Web Sunucusunu Yapılandırma
ServBay, yerleşik Apache Web Sunucusu paketini kolayca yönetmenizi ve yapılandırmanızı sağlar. ServBay'in grafik kullanıcı arayüzü sayesinde, farklı geliştirme projelerinin ihtiyaçlarını karşılayacak şekilde Apache'nin temel ayarlarını zahmetsizce düzenleyebilirsiniz.
Apache Yapılandırmasına Erişim
- ServBay uygulamasını açın.
- Sol taraftaki gezinme çubuğunda
Web Sunucusu
na tıklayın. Apache
sekmesini seçin.
Aşağıda gösterildiği gibi Apache'nin yapılandırma ekranını göreceksiniz:
Temel Yapılandırma Parametrelerinin Açıklaması
Aşağıda, Apache yapılandırma ekranındaki her bir parametrenin ayrıntılı açıklamasını bulabilirsiniz:
Temel Ayarlar
- HTTP Portu: Apache'nin dinlediği HTTP protokol portu. Varsayılan
80
'dir. - HTTPS Portu: Apache'nin dinlediği HTTPS protokol portu. Varsayılan
443
'tür. - Server Name (Sunucu Adı): Sunucunun kendini tanımlamak için kullandığı ad ve port. Varsayılan olarak
127.0.0.1
genellikle yerel erişim için kullanılır. - Server Root: Apache paketinin kurulum kök dizini. Dikkat: Burası web sitenizin dosyalarının saklandığı kök dizin değildir (site kök dizini site eklenirken ayrıca ayarlanır); burası Apache program dosyalarının yoludur. Varsayılan olarak genellikle
/Applications/ServBay/package/apache/current
şeklindedir.
Performans Ayarları (Performance Tuning)
- Timeout: Sunucu, I/O işlemini terk etmeden önce bekleyeceği maksimum saniye sayısı. Varsayılan
300
saniyedir. - Max KeepAlive Requests: Bir kalıcı bağlantı üzerinde izin verilen maksimum istek sayısı.
1000
, aynı bağlantı üzerinden daha fazla isteğe izin verir,0
ise sınırsızdır. - KeepAlive Timeout: Sunucu, bir kalıcı bağlantıyı kapatmadan önce bir sonraki isteği bekleyeceği maksimum süredir. Varsayılan
60
saniyedir. - Keep Alive: HTTP kalıcı bağlantılarını (KeepAlive) etkinleştirip etkinleştirmemeyi belirler. Performansı artırmak için
Açık (On)
önerilir. - MPM StartServers: Sunucu başlatıldığında oluşturulan alt hizmet süreçlerinin sayısı.
- MPM MaxSpareThreads: Maksimum boşta iş parçacığı (thread) sayısı. Ani istek artışlarına karşı yedek iş parçacıklarını kontrol eder.
- MPM MaxConnectionsPerChild (Önceden MaxRequestsPerChild): Her bir alt hizmet sürecinin ömrü sırasında izin verilen maksimum bağlantı sayısı.
0
sınırsızdır. Bellek sızıntılarının uzun süreli etkisini önlemeye yardımcı olur. - MPM MaxRequestWorkers (Önceden MaxClients): Aynı anda işlenebilecek maksimum eşzamanlı istek sayısı (tüm alt süreçlerin toplamı). Apache performansının kritik bir ayarıdır.
- MPM ThreadsPerChild: Her bir alt hizmet süreci tarafından oluşturulan sabit iş parçacığı sayısı (
worker
veyaevent
MPM için geçerli).
Özellikler ve Karakteristikler (Features & Characteristics)
- Access File Name: Dağıtık yapılandırma dosyası adını belirlemek için kullanılan direktif; genellikle
.htaccess
olur..htaccess
üzerinden sunucu ana yapılandırmasının üzerine yazma iznini açar veya kapatır. - Use Canonical Name: Apache'nin kendi kendine referans veren URL'leri nasıl oluşturduğunu kontrol eder.
Kapalı (Off)
genellikle daha esnektir. - Server Signature: Sunucunun oluşturduğu sayfalarda (örneğin hata sayfaları) en altta sunucu versiyonu ve sanal ana makine adı bilgilerini gösteren bir satır ekler. Güvenlik açısından üretim ortamlarında
Kapalı (Off)
önerilir. - Hostname Lookups: İstemciden gelen IP adresinin DNS üzerinden geriye doğru sorgulanıp ana makinenin isminin bulunup bulunmayacağını belirler.
Kapalı (Off)
yapılması performansı artırır çünkü DNS sorgulamaları yavaş olabilir. - Server Tokens: Sunucu yanıt başlığında (
Server:
) yer alacak bilgi miktarını kontrol eder.Minor
(örn. Apache/2.4) seçimiFull
dan (örn. Apache/2.4.58 (Unix) PHP/8.3.1) daha güvenlidir.Prod
ise yalnızcaApache
adını gösterir.
Yönetim ve Kayıt (Admin & Logging)
- Server Admin: Sunucunun istemciye gönderdiği hata mesajlarında gösterilecek yönetici e-posta adresi.
- Log Level: Hata günlüğüne (
error_log
) kaydedilecek mesajların ayrıntı seviyesini belirler.warn
sık kullanılan ve uyarı ile daha önemli hataları kaydeden bir seviyedir. Diğer seviyeler ise:debug
,info
,notice
,error
,crit
,alert
,emerg
.
Modüller (Modules)
Bu alanda, mevcut Apache modülleri listelenir. İstediğiniz modülleri etkinleştirmek veya devre dışı bırakmak için onay kutusu işaretleyebilirsiniz. Sık kullanılan bazı modüller:
mod_rewrite
: URL yeniden yazma işlemleri için kullanılır.mod_ssl
: SSL/TLS desteği sağlar (HTTPS).mod_deflate
: Aktarılan içeriği sıkıştırmak için kullanılır.mod_expires
: Önbellek başlıklarını kontrol eder.mod_proxy
ve ilişkili modüller: Ters proxy işlemleri için kullanılır.mod_auth_basic
,mod_auth_digest
: Temel ya da özet doğrulaması sağlar.
Modül ekleyip çıkardıktan sonra, yapılandırmayı kaydetmeniz ve değişikliklerin etkin olması için Apache hizmetini yeniden başlatmanız gerekebilir.
Dizin Dizini (Directory Index)
- Directory Index: Bir URL dizini gösterdiğinde Apache'nin dizin içinde arayacağı dosya adlarının listesidir. Liste sırasına göre ilk bulunan dosya gösterilir. Varsayılan olarak genellikle
index.html index.htm index.php
kullanılır.
SSL/TLS Ayarları
Bu ayarlar, Apache'nin HTTPS özelliklerini yapılandırmak için kullanılır.
- SSLCipherSuite / TLSCipherSuite: Sunucunun kullanmasına izin verilen şifreleme takımlarını (cipher suite) tanımlar. Güçlü ve modern şifreleme takımları kullanmak güvenlik açısından kritiktir. ServBay önerilen varsayılan değerler sunar.
- SSLProxyCipherSuite: Apache, ters proxy olarak kullanıldığında SSL bağlantılarında kullanılacak şifreleme takımını tanımlar.
- SSLHonorCipherOrder:
Açık (On)
olduğunda, sunucu kendi tercih ettiği şifreleme takımını önceliklendirir; istemcinin tercihi dikkate alınmaz.On
önerilir. - SSLStrictSNIVHostCheck:
Açık (On)
ise, istemcinin SNI (Server Name Indication) ile ilettiği ana makine adı yapılandırılan sanal ana makineyle uyuşmazsa bağlantı reddedilir. Güvenliği artırır. - ProtocolHonorOrder:
SSLHonorCipherOrder
ile benzer şekilde çalışır, ancak protokol versiyonlarının müzakeresine uygulanır. - SSLProtocol: İzin verilen SSL/TLS protokol sürümlerini tanımlar. Örneğin:
all -SSLv2 -SSLv3
ifadesi, tüm modern protokollerin izinli olup SSLv2 ve SSLv3'ün devre dışı bırakıldığı anlamına gelir. - SSLProxyProtocol: Apache bir ters proxy olarak çalışırken kullanılacak protokol sürümlerini tanımlar.
- Protocols: Desteklenen protokollerin sıralamasını yapılandırır; örneğin HTTP/2'yi etkinleştirir.
h2 h2c http/1.1
tercihen önce şifreli HTTP/2 (h2
), sonra açık HTTP/2 (h2c
), son olarak HTTP/1.1 kullanılacağı anlamına gelir.
Kaydetme ve Sıfırlama
- Reset (Sıfırla): Bu düğmeye tıkladığınızda, tüm Apache ayarları ServBay’in varsayılan yapılandırmasına döner.
- Save (Kaydet): Bu düğmeye bastığınızda, Apache yapılandırmanızdaki tüm değişiklikler kaydedilir. Kaydettikten sonra ServBay normalde bu değişiklikleri otomatik olarak uygular. Apache servisi çalışıyorsa, tüm değişikliklerin etkin olması için kısa bir yeniden başlatma gerekebilir.
Önemli Notlar
- Burada yapılan değişiklikler Apache'nin genel yapılandırmasını etkiler. Belirli bir siteye (Sanal Host) özgü ayarlar (örneğin
DocumentRoot
, belirli birRewriteRule
vb.), genellikle birWeb Sitesi
eklerken veya düzenlerken oluşturulur. - Eğer yapılandırma ekranının üst kısmında "Service Apache is not enabled" (Apache hizmeti etkin değil) uyarısını görüyorsanız, bu Apache hizmetinin şu anda çalışmadığı anlamına gelir. Yine de yapılandırmayı değiştirebilir ve kaydedebilirsiniz; ancak değişiklikler yalnızca Apache hizmetini bir sonraki başlatışınızda etkin olacaktır. Apache'yi ServBay’in ana panelinden veya
Paketler
menüsünden başlatabilirsiniz.
Özet
ServBay, Apache Web Sunucusunun temel yapılandırmasını yönetmek için sezgisel bir arayüz sunar. Bu ayarları anlayarak, Apache’nin davranışını, performansını ve güvenliğini geliştirme ihtiyaçlarınıza uygun şekilde özelleştirebilir, ServBay’i yerel geliştirme ortamınızda en iyi şekilde kullanabilirsiniz.