MeoHost Logo
Menü
BilgiMerkezi
Bilgi Merkezi/Web Sunucuları/Apache Konfigürasyon Dosyası (.conf) Yapısı

Apache Konfigürasyon Dosyası (.conf) Yapısı

Web Sunucuları18.02.2026Ahmet Yılmaz11 dk okuma

Apache yapılandırma dosyası (.conf), Apache HTTP Sunucusu'nun davranışını, sanal hostlarını, güvenlik ayarlarını ve modül yüklemelerini belirleyen metin tabanlı bir dosyadır. Bu dosyalar, sunucunun nasıl çalışacağını, hangi kaynakları sunacağını ve isteklere nasıl yanıt vereceğini tanımlayan yönergeler ve direktifler içerir. Apache'nin esnekliği ve genişletilebilirliği büyük ölçüde bu yapılandırma dosyalarının karmaşık ve detaylı yapısından kaynaklanır.

Apache Konfigürasyon Dosyası (.conf) Yapısı

Apache Konfigürasyon Dosyası (.conf) Nedir?

Apache Konfigürasyon Dosyası Nasıl Çalışır?

Apache HTTP Sunucusu, başlatıldığında veya yeniden yüklendiğinde, yapılandırma dosyalarını belirli bir öncelik sırasına göre okuyarak çalışır. Bu dosyalar, sunucunun global ayarlarını, sanal host tanımlarını ve belirli dizinler veya URL'ler için özel kuralları içerir. İşleyiş mekanizması şu adımları izler:

  1. Başlangıç: Apache başlatıldığında, ana yapılandırma dosyasını (genellikle httpd.conf veya apache2.conf) okur.
  2. Modül Yüklemesi: Yapılandırma dosyasında belirtilen modüller yüklenir. Bu modüller, sunucuya ek işlevsellik (örneğin, SSL/TLS desteği, sıkıştırma) kazandırır.
  3. Global Ayarlar: Sunucunun genel dinleme portları, kullanıcı/grup izinleri, günlük dosyalarının konumu gibi temel ayarlar uygulanır.
  4. Sanal Host İşlemesi: VirtualHost direktifleri ile tanımlanan sanal hostlar işlenir. Her sanal host bloğu, belirli bir alan adı veya IP adresi için geçerli olan kendi yapılandırma ayarlarını içerebilir.
  5. Dizin ve Dosya Seviyesi Yapılandırması: Directory, Location ve Files direktifleri kullanılarak belirli dizinler veya URL yolları için özel kurallar (erişim izinleri, yönlendirmeler, içerik türleri vb.) tanımlanır.
  6. Runtime Değişiklikler: Yapılandırma dosyalarında yapılan değişiklikler, sunucuyu yeniden başlatmadan veya yeniden yüklemeden (graceful reload) etkinleşmeyebilir. Bu işlem, hizmet kesintisini en aza indirerek yapılandırmanın güncellenmesini sağlar.

Bu süreç, Apache'nin son derece esnek bir şekilde farklı web sitelerini aynı sunucu üzerinde barındırmasına ve her biri için özelleştirilmiş ayarlar sunmasına olanak tanır. Yapılandırma dosyaları, direktifler (komutlar) ve argümanlardan oluşur ve genellikle formatındadır. Direktifler, Apache'nin belirli bir işlevi yerine getirmesini söylerken, argümanlar bu işlevin nasıl gerçekleştirileceğini belirtir.

Apache Konfigürasyon Dosyası Yapısı

Apache yapılandırma dosyaları, modüler bir yapıya sahiptir ve farklı seviyelerde ayarlar içerebilir. Bu yapı, karmaşık sunucu ortamlarının yönetimini kolaylaştırır. Başlıca yapılandırma dosyaları ve içerikleri şunlardır:

  • Ana Yapılandırma Dosyası (httpd.conf veya apache2.conf): Bu dosya, sunucunun genel davranışını tanımlayan temel direktifleri içerir. Genellikle ilk okunan dosyadır ve diğer yapılandırma dosyalarını dahil etmek için kullanılır.
  • Sanal Host Yapılandırması: Her bir web sitesi veya alan adı için ayrı yapılandırma dosyaları oluşturulabilir. Bu dosyalar genellikle sites-available ve sites-enabled (Debian/Ubuntu tabanlı sistemlerde) veya conf.d dizinlerinde bulunur. Her sanal host bloğu, belirli bir alan adı için ServerName, DocumentRoot, ErrorLog, CustomLog gibi direktifleri içerir.
  • Modül Yapılandırması: Bazı modüller, kendi yapılandırma dosyalarına sahip olabilir. Bu dosyalar, modülün özel ayarlarını (örneğin, mod_ssl için sertifika yolları) içerir.
  • Dizin Seviyesi Yapılandırması (.htaccess dosyaları): Sunucunun ana yapılandırma dosyası değiştirilmeden, belirli dizinler için özel yapılandırmalar yapmak amacıyla kullanılır. AllowOverride direktifi ile etkinleştirilirler.

Yapılandırma dosyalarındaki temel öğeler şunlardır:

  • Direktifler (Directives): Apache'nin gerçekleştireceği komutlardır. Örneğin, Listen 80 sunucunun 80 numaralı portu dinlemesini sağlar.
  • Konteynerler (Containers): Belirli koşullar altında geçerli olacak direktifleri gruplamak için kullanılır. En yaygın konteynerler şunlardır:
    • : Belirli bir IP adresi ve port için yapılandırma bloğu.
    • : Belirli bir dosya sistemi dizini için yapılandırma bloğu.
    • : Belirli bir URL yolu için yapılandırma bloğu.
    • : Belirli dosya adları veya kalıpları için yapılandırma bloğu.
  • Yorum Satırları: # karakteri ile başlayan satırlar yorum olarak kabul edilir ve sunucu tarafından işlenmez.

Örnek Yapılandırma Parçası:

# Ana sunucu ayarları
ServerRoot "/usr/local/apache2"
Listen 80
User apache
Group apache

# Hata günlüklerinin konumu
ErrorLog logs/error_log
CustomLog logs/access_log combined

# Sanal hostlar için dahil edilecek dosya
Include conf/extra/httpd-vhosts.conf

# mod_rewrite gibi modüllerin etkinleştirilmesi
LoadModule rewrite_module modules/mod_rewrite.so

Bu yapı, Apache'nin ne kadar esnek ve özelleştirilebilir olduğunu göstermektedir. Farklı senaryolar için farklı yapılandırma dosyaları ve direktif kombinasyonları kullanılabilir.

Apache Konfigürasyon Dosyası Direktifleri

Apache yapılandırma dosyaları, sunucunun davranışını kontrol eden yüzlerce direktif içerir. Bu direktifler, sunucunun temel ayarlarından, güvenlik protokollerine, içerik yönetiminden, URL yönlendirmelerine kadar geniş bir yelpazede işlevsellik sağlar. En sık kullanılan ve kritik öneme sahip direktiflerden bazıları şunlardır:

  • ServerRoot: Apache'nin ana dizinini belirtir. Tüm yapılandırma dosyaları, loglar ve modüller bu dizin altında aranır.
  • Listen: Sunucunun hangi IP adresleri ve portlar üzerinden istekleri dinleyeceğini belirler. Örneğin, Listen 80 veya Listen 192.168.1.100:8080.
  • User ve Group: Apache işleminin hangi kullanıcı ve grup kimliğiyle çalışacağını belirler. Güvenlik açısından önemlidir.
  • ServerName: Sunucunun ana alan adını belirtir. Özellikle birden fazla sanal host varsa önemlidir.
  • DocumentRoot: Bir sanal host veya ana sunucu için web sitesi dosyalarının bulunduğu dizini belirtir.
  • DirectoryIndex: Bir dizine istek yapıldığında (örneğin, http://example.com/klasor/), sunucunun otomatik olarak sunacağı index dosyalarını belirtir (örneğin, index.html index.php).
  • AllowOverride: Belirli bir dizin için .htaccess dosyalarının kullanılıp kullanılamayacağını kontrol eder. All, None, FileInfo gibi değerler alabilir.
  • Require: Erişim kontrolü için kullanılır. Require all granted herkesin erişimine izin verirken, Require ip 192.168.1.0/24 belirli bir IP aralığına izin verir.
  • RewriteEngine, RewriteRule, RewriteCond: mod_rewrite modülü ile birlikte URL yönlendirmeleri ve yeniden yazımları için kullanılır. Örneğin, http://example.com/eski-sayfa adresini http://example.com/yeni-sayfa adresine yönlendirmek için kullanılır.
  • SSLEngine, SSLCertificateFile, SSLCertificateKeyFile: SSL/TLS sertifikalarını yapılandırmak ve HTTPS üzerinden güvenli bağlantıları etkinleştirmek için kullanılır.
  • ExpiresActive, Header set Cache-Control: Tarayıcı önbellekleme (caching) ayarlarını yapılandırmak için kullanılır.

Bu direktifler, Apache'nin karmaşık web uygulamalarını barındırmasını, güvenlik politikalarını uygulamasını ve performansı optimize etmesini sağlar. Her direktifin belirli bir işlevi ve alabileceği argümanlar vardır. Doğru direktif kullanımı, web sunucusunun verimliliği ve güvenliği için kritik öneme sahiptir.

Sanal Host Yapılandırması

Sanal hostlar, tek bir fiziksel veya sanal sunucu üzerinde birden fazla web sitesini barındırmaya olanak tanır. Her sanal host, kendi alan adına (örneğin, site1.com ve site2.com) ve kendi yapılandırma ayarlarına sahip olabilir. Apache'de sanal host yapılandırması, genellikle ana yapılandırma dosyasında Include direktifi ile çağrılan ayrı dosyalarda yapılır.

Bir sanal host dosyasının temel yapısı şöyledir:


    ServerAdmin webmaster@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1/public_html
    ErrorLog logs/site1-error.log
    CustomLog logs/site1-access.log combined

    # Belirli dizinler için ek ayarlar
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

    # SSL yapılandırması (HTTPS için)
    # SSLEngine on
    # SSLCertificateFile /etc/ssl/certs/site1.crt
    # SSLCertificateKeyFile /etc/ssl/private/site1.key



    ServerAdmin webmaster@site2.com
    ServerName site2.com
    DocumentRoot /var/www/site2/public_html
    ErrorLog logs/site2-error.log
    CustomLog logs/site2-access.log combined

    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

Bu örnekte:

  • : Bu blok, sunucunun tüm IP adreslerinde (*) 80 numaralı port üzerinden gelen istekler için geçerlidir.
  • ServerAdmin: Sitenin yöneticisinin e-posta adresini belirtir. Hata durumlarında bu adrese bildirim gönderilebilir.
  • ServerName ve ServerAlias: Sanal hostun hangi alan adları veya alt alan adları için aktif olacağını belirtir.
  • DocumentRoot: Bu sanal hosta ait dosyaların bulunduğu ana dizini gösterir.
  • ErrorLog ve CustomLog: Bu sanal hosta özel hata ve erişim günlüklerinin nereye yazılacağını belirtir.
  • bloğu: Belirtilen dizin için özel izinler, seçenekler ve .htaccess kullanımını tanımlar.

HTTPS desteği için, ayrı bir bloğu oluşturulur ve SSL ile ilgili direktifler (SSLEngine, SSLCertificateFile vb.) eklenir. Bu modüler yapı, her web sitesi için bağımsız yapılandırma ve yönetim imkanı sunar.

SSL/TLS Konfigürasyonu

SSL/TLS (Secure Sockets Layer/Transport Layer Security), web siteleri ile kullanıcılar arasındaki iletişimi şifreleyerek güvenli hale getirir. Apache sunucularında SSL/TLS yapılandırması, mod_ssl modülü aracılığıyla gerçekleştirilir.

SSL/TLS yapılandırması için temel adımlar şunlardır:

  1. mod_ssl Modülünün Yüklenmesi: Apache'nin SSL/TLS desteği sunabilmesi için bu modülün yüklenmiş ve etkinleştirilmiş olması gerekir. Genellikle kurulum sırasında eklenir veya sonradan modül olarak yüklenebilir.
  2. SSL Sertifikası Edinme: Güvenilir bir Sertifika Otoritesi'nden (CA) bir SSL sertifikası alınmalıdır. Bu sertifika, alan adınızı ve sunucunuzun kimliğini doğrular.
  3. Sanal Host Yapılandırması (HTTPS için): Genellikle ana yapılandırma dosyasında veya sanal host dosyalarında, 443 numaralı portu dinleyen yeni bir bloğu oluşturulur.
  4. Gerekli Direktiflerin Eklenmesi:
    • SSLEngine on: SSL motorunu etkinleştirir.
    • SSLCertificateFile /path/to/your_domain.crt: Sunulan SSL sertifikasının dosya yolunu belirtir.
    • SSLCertificateKeyFile /path/to/your_private.key: SSL sertifikasının özel anahtarının dosya yolunu belirtir.
    • SSLCertificateChainFile /path/to/intermediate.crt (isteğe bağlı): Ara sertifikaları belirtir.
  5. HTTP'den HTTPS'ye Yönlendirme: Güvenliği artırmak ve tüm trafiğin şifreli olmasını sağlamak için, HTTP isteklerini otomatik olarak HTTPS'ye yönlendiren kurallar eklenmelidir. Bu genellikle mod_rewrite kullanılarak yapılır.

Örnek SSL/TLS Yapılandırması:


    ServerAdmin webmaster@example.com
    ServerName example.com
    DocumentRoot /var/www/example.com/public_html

    SSLEngine on
    SSLCertificateFile    /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key
    # SSLCertificateChainFile /etc/ssl/certs/intermediate.pem # Gerekirse

    ErrorLog logs/example.com-ssl-error.log
    CustomLog logs/example.com-ssl-access.log combined

    # TLS Protokol Sürümleri ve Güvenli Şifreleme Süitleri
    SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
    SSLHonorCipherOrder     on
    SSLSessionTickets       off

    # HTTP Strict Transport Security (HSTS)
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"



# HTTP'den HTTPS'ye Yönlendirme

    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/

Bu yapılandırma, hem güvenli bağlantıyı sağlar hem de güncel güvenlik standartlarına uygunluğu artırır. Doğru SSL/TLS yapılandırması, kullanıcıların verilerini korur ve site güvenilirliğini artırır.

Cache ve Gzip Optimizasyonu

Web sunucularında performans optimizasyonu için önbellekleme (caching) ve sıkıştırma (gzip) kritik öneme sahiptir. Apache, bu optimizasyonları sağlamak için çeşitli modüller ve direktifler sunar.

Önbellekleme (Caching):

  • Tarayıcı Önbellekleme: Kullanıcının tarayıcısının, web sitesine ait statik dosyaları (CSS, JavaScript, resimler vb.) yerel kopyasını saklamasını sağlar. Bu, tekrar ziyaretlerde sayfanın daha hızlı yüklenmesine yardımcı olur. mod_expires ve mod_headers modülleri bu amaçla kullanılır.
    • ExpiresActive On: Önbellekleme direktiflerini etkinleştirir.
    • ExpiresByType text/css "access plus 1 year": CSS dosyaları için 1 yıl geçerli bir önbellekleme süresi belirler.
    • Header set Cache-Control "max-age=31536000": Tarayıcıya gönderilecek cache-control başlığını ayarlar.
  • Sunucu Tarafı Önbellekleme: Apache'nin kendisinin dinamik olarak oluşturulan sayfaların veya sık kullanılan dosyaların kopyalarını bellekte veya diskte saklamasını sağlar. mod_cache ve mod_cache_disk gibi modüller kullanılır. Bu, özellikle yoğun trafik alan ve dinamik içerik üreten siteler için performansı önemli ölçüde artırabilir.

Gzip Sıkıştırma:

  • mod_deflate modülü, sunulan metin tabanlı dosyaları (HTML, CSS, JavaScript, XML, JSON vb.) istemciye göndermeden önce sıkıştırır. Tarayıcı, bu sıkıştırılmış veriyi alıp açar. Bu, dosya boyutlarını %70-80 oranında azaltabilir ve sayfa yükleme sürelerini iyileştirebilir.
  • Yapılandırma Örneği:
        
            AddOutputFilterByType DEFLATE text/plain
            AddOutputFilterByType DEFLATE text/html
            AddOutputFilterByType DEFLATE text/xml
            AddOutputFilterByType DEFLATE text/css
            AddOutputFilterByType DEFLATE application/xml
            AddOutputFilterByType DEFLATE application/xhtml+xml
            AddOutputFilterByType DEFLATE application/rss+xml
            AddOutputFilterByType DEFLATE application/javascript
            AddOutputFilterByType DEFLATE application/x-javascript
            AddOutputFilterByType DEFLATE application/x-font-opentype
            AddOutputFilterByType DEFLATE application/font-woff
            AddOutputFilterByType DEFLATE application/font-woff2
            AddOutputFilterByType DEFLATE image/svg+xml
        
        

Bu optimizasyonlar, sunucunun kaynak kullanımını azaltır ve son kullanıcılara daha hızlı bir deneyim sunar. Doğru yapılandırıldığında, hem kullanıcı memnuniyetini artırır hem de sunucu maliyetlerini düşürebilir.

Sık Yapılan Hatalar ve Çözümleri

  • Hata: Server reached max_clients hatası. Çözüm: Sunucunun aynı anda hizmet verebileceği maksimum istemci sayısına ulaşıldığında bu hata oluşur. MaxClients direktifinin değerini artırmak (dikkatli olunmalı, sunucu kaynaklarını aşmamalı) veya mpm_event gibi daha verimli MPM (Multi-Processing Module) kullanmak sorunu çözebilir.
  • Hata: .htaccess dosyası çalışmıyor veya Forbidden (403) hatası veriyor. Çözüm: Bu genellikle AllowOverride direktifinin yanlış yapılandırılmasından kaynaklanır. Ana Apache yapılandırma dosyasında (httpd.conf veya apache2.conf) ilgili dizin bloğunda AllowOverride All veya gerekli direktifler için belirli izinler (örneğin, AllowOverride FileInfo) ayarlanmalıdır.
  • Hata: SSL/TLS sertifikası sorunları (NET::ERR_CERT_AUTHORITY_INVALID). Çözüm: Sertifikanın doğru şekilde yüklenmediği, süresinin dolduğu veya ara sertifika zincirinin eksik olduğu anlamına gelir. SSLCertificateFile, SSLCertificateKeyFile ve isteğe bağlı olarak SSLCertificateChainFile direktiflerinin doğru dosya yollarına işaret ettiğinden ve sertifikanın geçerli olduğundan emin olunmalıdır.
  • Hata: Apache yapılandırma dosyasında sözdizimi hatası. Çözüm: apachectl configtest veya httpd -t komutu, yapılandırma dosyasındaki sözdizimi hatalarını tespit etmek için kullanılır. Komutun çıktısı, hatanın bulunduğu satırı ve nedenini gösterecektir.
  • Hata: mod_rewrite kuralları çalışmıyor. Çözüm: mod_rewrite modülünün etkinleştirildiğinden emin olun. Ayrıca, RewriteEngine On direktifinin ilgili sanal host veya dizin bloğunda etkin olduğundan ve AllowOverride All ayarının .htaccess dosyaları için yapıldığından emin olunmalıdır.

Teknik Özellikler ve Standartlar

Apache HTTP Sunucusu, web teknolojisi standartlarına sıkı sıkıya bağlı kalarak çalışır. Temel olarak HTTP (Hypertext Transfer Protocol) protokolünün çeşitli sürümlerini destekler.

  • HTTP/1.1: Halen en yaygın kullanılan protokoldür. Apache, bu protokoldeki Keep-Alive gibi özellikleri destekleyerek performansı artırır.
  • HTTP/2: Daha hızlı ve verimli bir protokoldür. Apache'nin mod_http2 modülü aracılığıyla desteklenir. HTTP/2, sunucu itme (server push), başlık sıkıştırma (HPACK) ve çoklu akış (multiplexing) gibi özelliklerle web sayfa yükleme sürelerini önemli ölçüde azaltır.
  • Web Sunucusu API'leri (WSAPI): Apache, çeşitli programlama dilleri ve çerçeveleri için genişletilebilirlik sunan CGI (Common Gateway Interface), FastCGI ve mod_php gibi arayüzleri destekler. Bu, dinamik içerik oluşturma ve web uygulamalarını çalıştırma esnekliği sağlar.
  • Güvenlik Standartları: SSL/TLS protokolünün güncel sürümlerini (TLS 1.2, TLS 1.3) ve güçlü şifreleme algoritmalarını destekleyerek güvenli veri iletimini sağlar.
  • RFC Uyumluluğu: Apache, ilgili RFC (Request for Comments) dokümanlarında tanımlanan standartlara uyum sağlamaya çalışır, bu da onu diğer web sunucuları ve istemcilerle uyumlu hale getirir.

2026 Sektör Verileri ve İstatistikler

Web sunucu pazarındaki eğilimler ve kullanım oranları, teknoloji dünyasının dinamizmini yansıtmaktadır. Apache, uzun yıllardır pazar lideri konumunu korusa da, Nginx ve LiteSpeed gibi alternatiflerin yükselişi dikkat çekicidir.

  • W3Techs 2026 verilerine göre, Apache tüm web sitelerinin yaklaşık %30'unda kullanılmaktadır ve hala en yaygın kullanılan web sunucu yazılımıdır.
  • Statista 2026 raporuna göre, web sunucu pazarında Apache'yi Nginx (%35) ve Microsoft-IIS (%15) takip etmektedir. LiteSpeed ve OpenLiteSpeed gibi alternatiflerin kullanım oranı da artış göstermektedir.
  • Cloudflare Radar 2026 verilerine göre, web trafiğinin büyük bir kısmı (%70) mobil cihazlardan gelmekte, bu da sunucuların mobil kullanıcılar için optimize edilmesinin önemini vurgulamaktadır.
  • Netcraft 2026 araştırmasına göre, küresel olarak aktif web sitesi sayısı 2 milyarı aşmıştır ve bu sitelerin büyük çoğunluğu Apache veya Nginx üzerinde barındırılmaktadır.

İlgili Konular

Apache'nin yapılandırması ve kullanımı hakkında daha fazla bilgi edinmek için aşağıdaki makaleler faydalı olacaktır:

  • Web Sunucusu Kurulumu: Apache gibi web sunucularının nasıl kurulup temel düzeyde yapılandırılacağına dair kapsamlı bilgiler içerir.
  • Apache vs Nginx Hangisi Daha İyi?: Apache ve Nginx'in performans, özellikler ve kullanım senaryoları açısından karşılaştırmasını sunarak, hangi durumda hangisinin tercih edilebileceği konusunda rehberlik eder.

Sık Sorulan Sorular

Apache Konfigürasyon Dosyası (.conf) Yapısı hakkında merak edilenler

Apache yapılandırma dosyalarında yapılan değişikliklerin aktif olması için sunucunun yeniden başlatılması veya yeniden yüklenmesi (reload) gerekir. Yeniden yükleme işlemi (örneğin, apachectl graceful komutuyla) genellikle hizmet kesintisi olmadan yapılandırmanın güncellenmesini sağlar. Tam yeniden başlatma ise, sunucunun tamamen durdurulup tekrar başlatılması anlamına gelir.

Sorunuz burada yok mu?

Canlı destek ekibimiz size yardımcı olmaya hazır.

İletişime Geç
A

Ahmet Yılmaz

İçerik Uzmanı

Web teknolojileri ve hosting çözümleri konusunda uzmanlaşmış içerik yazarı.

Web HostingTeknik Dokümantasyon
Yayın: 18 Şubat 2026
Güncelleme: 13 Şubat 2026
Uzman İçerik
Doğrulanmış Bilgi
Güncel Bilgi