Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Apache HTTP Server, web tarayıcılarından gelen HTTP/HTTPS isteklerini karşılayıp dosya, uygulama veya yönlendirme sonucu döndüren açık kaynaklı bir web sunucusudur. Kısaca, ziyaretçi example.com adresine gittiğinde isteği alır; hangi sitenin çağrıldığını belirler, istenen içeriği sunar ve sonucu tarayıcıya gönderir. Yazılım genellikle httpd adıyla da anılır.

Apache; statik HTML, CSS, JavaScript, görsel ve dosyaları doğrudan sunabildiği gibi PHP gibi uygulama çalışma ortamlarıyla, ters proxy yapılarıyla, TLS sertifikalarıyla ve erişim denetimi modülleriyle birlikte de kullanılabilir. Bir işletim sistemi değildir ve tek başına veritabanı veya içerik yönetim sistemi değildir; web sunucusu katmanıdır.

Apache nasıl çalışır?​


Bir ziyaretçinin isteği genel olarak şu sıradan geçer:
  1. Tarayıcı, alan adını DNS üzerinden sunucunun IP adresine çözer.
  2. İstek Apache'nin dinlediği HTTP veya HTTPS portuna ulaşır.
  3. Apache, isteğin adresini ve Host bilgisini inceler.
  4. Uygun sanal sunucuyu ve onun DocumentRoot dizinini seçer.
  5. Dosyayı doğrudan gönderir veya isteği ilgili modüle, uygulamaya ya da proxy arka ucuna aktarır.
  6. HTTP yanıtını döndürür; ilgili erişim günlüğü yapılandırılmışsa isteği kaydeder.
Apache'nin davranışı düz metin yapılandırma dosyalarındaki yönergelerle belirlenir. Ana yapılandırma tüm sunucuyu etkileyebilir; <VirtualHost>, <Directory> ve benzeri bölümler ise belirli site veya dizinlere özel kurallar tanımlamak için kullanılır. Özellikler modülerdir: yeniden yazma, proxy, kimlik doğrulama, TLS ve içerik sıkıştırma gibi yetenekler ilgili modüllerle sağlanır.

Somut örnek: aynı sunucuda iki site​


Tek bir sunucu IP'si üzerinde example.com ve example.org barındırılabilir. Apache, gelen istekteki alan adına bakarak farklı DocumentRoot dizinlerinden içerik sunar:

Kod:
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"
</VirtualHost>

<VirtualHost *:80>
    ServerName example.org
    DocumentRoot "/var/www/example.org"
</VirtualHost>

Bu bloklar ana Apache yapılandırması/sanal host dosyası içindir; .htaccess içine yazılmaz. Dizinler mevcut olmalı, servis kullanıcısı okuyabilmeli ve ilgili Directory erişim politikası bunlara izin vermelidir. Bu yapılandırma yalnızca Apache tarafındaki eşleştirmeyi yapar. Alan adlarının DNS kayıtları sunucunun IP adresine yönelmiyorsa ziyaretçi doğru siteye ulaşamaz. Ayrıca Apache'nin ilgili adres ve portu dinlemesi gerekir. Listen 80 yönergesi portu dinlemeyi sağlar; sanal host tanımı ise o porttaki isteğin hangi siteye ait olduğunu belirler.

Apache ne zaman tercih edilir?​


Apache, tek veya birden fazla web sitesini esnek biçimde yönetmek, site bazlı yapılandırma yapmak ve çok sayıda modülden yararlanmak istediğinizde uygundur. Paylaşımlı hosting panellerinde, klasik PHP sitelerinde, kurumsal web sunucularında ve ters proxy arkasındaki uygulamalarda kullanılabilir.

Karar verirken temel ayrım şöyledir:
İhtiyaçApache'de karşılığıKontrol noktası
Statik dosya sunmakDocumentRootDosya yolu ve izinler
Bir IP'de birden fazla siteVirtualHostDNS, ServerName ve port
URL değiştirmek veya yönlendirmekmod_rewriteKural sırası ve döngü kontrolü
Uygulamaya istek aktarmakTers proxy modülleriArka uç adresi ve bağlantı durumu

Kurulumdan sonra ilk kontroller​


Apache zaten kuruluysa önce hangi yapılandırma dosyasını kullandığını ve modülleri kontrol edin. Dağıtıma göre dosya yolları değişebilir; bu nedenle rastgele dosya düzenlemek yerine servis yöneticisinin veya dağıtım paketinin gösterdiği ana yapılandırmayı kullanın.
  1. Yapılandırma sözdizimini servis yeniden başlatmadan test edin. Kurulumunuzun kontrol komutu (örneğin apachectl -t veya httpd -t) hata gösterirse önce belirtilen dosya ve satır numarasını düzeltin.
  2. Apache'nin ilgili HTTP veya HTTPS portunu dinlediğini doğrulayın. Port dinlenmiyorsa doğru sanal host tanımlı olsa bile siteye erişilemez.
  3. İsteğin beklenen sanal hosta gidip gitmediğini kontrol edin. Yanlış site açılıyorsa genellikle DNS, ServerName, ServerAlias, port veya sanal host sırası incelenir.
  4. Erişim ve hata günlüklerini kontrol edin. Başarılı istek erişim günlüğünde, dosya veya yapılandırma sorunları ise hata günlüğünde iz bırakır.

Sık yapılan hatalar​


En yaygın hata, Apache'nin alan adı DNS'ini kendiliğinden oluşturduğunu sanmaktır. Apache gelen isteği işler; alan adının IP adresine çözülmesini DNS sağlar. Bir diğer hata, Listen ile VirtualHost görevlerini karıştırmaktır: ilki adres ve port dinlemeyi, ikincisi ise isteğe uygulanacak site yapılandırmasını belirler.

Ayrıca yalnızca ana yapılandırma dosyasını değiştirmek her zaman yeterli değildir. Gerekli modül yüklü değilse ilgili yönerge tanınmayabilir. Değişiklikten sonra yapılandırmayı test etmeden servisi yeniden başlatmak, yazım hatası nedeniyle kesintiye yol açabilir. Önce sözdizimi testi, ardından kontrollü yeniden yükleme ve son olarak günlük kontrolü daha doğru sıradır.

Sık sorulan sorular​


Apache ile Apache Tomcat aynı şey midir?​


Hayır. Apache HTTP Server genel amaçlı web sunucusudur. Tomcat ise özellikle Java servlet ve JSP uygulamalarını çalıştıran uygulama sunucusu bileşenidir. İkisi birlikte kullanıldığında Apache öndeki web sunucusu veya proxy olabilir.

Apache çalışırken PHP dosyası neden metin olarak görünebilir?​


Bu durum Apache'nin PHP'yi yorumlayacak çalışma ortamına veya doğru entegrasyona sahip olmadığını gösterir. Dosyanın uzantısından çok, ilgili PHP çalışma yönteminin ve Apache bağlantısının yapılandırılması gerekir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic