<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 420990:1301736 (outdated) -->
+<!-- English Revision: 1301736 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<summary>
- <p>Sanal konak kodu <strong>Apache 1.3</strong> sürümünde baştan yeniden
- yazıldı. Bu belgede, bir istek aldığında Apache’nin hangi sanal konak
- ile hizmet sunacağına nasıl karar verdiği açıklanmaya çalışılmıştır.
- <directive module="core">NameVirtualHost</directive> yönergesi sayesinde
- sanal konak yapılandırması 1.3 sürümünün öncesine göre daha kolay ve
- daha güvenilir hale gelmiştir.</p>
+ <p>Bu belgede, bir istek aldığında Apache’nin hangi sanal konak
+ ile hizmet sunacağına nasıl karar verdiği açıklanmaya çalışılmıştır.</p>
- <p>Sanal konakların nasıl çalıştığını öğrenmeden sadece çalıştırmak
- isterseniz doğrudan <a href="examples.html">örneklerin bulunduğu
- sayfaya</a> bakabilirsiniz.</p>
+ <p>Çoğu kullanıcı hangi türü kullanacağına karar vermek için önce <a
+ href="name-based.html#namevip">İsme dayalı ve IP’ye dayalı Sanal
+ Konak</a> bölümünü, sonra <a href="name-based.html">İsme Dayalı Sanal
+ Konak Desteği</a> veya <a href="ip-based.html">IP’ye Dayalı Sanal Konak
+ Desteği</a> belgesini okumalı ve <a href="examples.html">bazı
+ örneklere</a> göz atmalıdır.</p>
+
+ <p>Bunlardan sonra tüm ayrıntıları anlamak isterseniz tekrar bu sayfaya
+ gelebilirsiniz.</p>
</summary>
-<section id="configparsing"><title>Yapılandırma Dosyasının Çözümlenmesi</title>
+<seealso><a href="ip-based.html">IP’ye Dayalı Sanal Konak Desteği</a></seealso>
+<seealso><a href="name-based.html">İsme Dayalı Sanal Konak Desteği</a></seealso>
+<seealso><a href="examples.html">Çok Kullanılan Sanal Konak Örnekleri</a></seealso>
+<seealso><a href="mass.html">Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma</a></seealso>
+
+<section id="configparsing"><title>Yapılandırma Dosyası</title>
<p>Bu belgede <code><VirtualHost></code> bölümleri dışında kalan
- tanımlardan bahsederken <em>ana_sunucu</em>, <directive type="section"
- module="core">VirtualHost</directive> bölümlerindeki tanımlamalardan
- bahsederken <em>sankonlar</em> diyeceğiz.</p>
-
- <p><directive module="mpm_common">Listen</directive>,
- <directive module="core">ServerName</directive>,
- <directive module="core">ServerPath</directive> ve
- <directive module="core">ServerAlias</directive> yönergeleri bir sunucu
- yapılandırmasının her yerinde karşımıza çıkabilir. Bununla birlikte,
- sunucu dahilinde son göründükleri yerlerde önceki eşdeğerlerini geçersiz
- kılarlar.</p>
-
- <p><code>Listen</code> yönergesinin ana_sunucu için öntanımlı değeri
- 80’dir. <code>ServerPath</code> ve <code>ServerAlias</code>
- yönergelerinin ana_sunucu için öntanımlı değerleri yoktur. Öntanımlı
- <code>ServerName</code> değeri ise sunucunun IP adresinden elde
- edilir.</p>
-
- <p>Ana_sunucu <code>Listen</code> yönergesinin iki işlevi vardır. Biri
- Apache’nin dinleyeceği öntanımlı ağ portunu belirlemek, diğeri ise
- yönlendirmeler sırasında mutlak URI’lerde kullanılan port numarasını
- belirlemektir.</p>
-
- <p>Ana_sunucunun aksine sankonların portları Apache‘nin dinleyeceği
- portlar üzerinde etkili değildir.</p>
+ tanımlardan bahsederken <em>ana_sunucu</em> diyeceğiz.</p>
+
+ <p><directive type="section" module="core">VirtualHost</directive>
+ bölümlerindeki tanımlamalardan bahsederken <em>sankonlar</em>
+ diyeceğiz.</p>
+
+ <p>Her <code>VirtualHost</code> bölümü en az bir adres ve isteğe bağlı
+ portlar içerir.</p>
+
+ <p>Sanal konak tanımlarının içindeki IP adreslerinin yerine konak isimleri
+ kullanılabilir, fakat bunlar başlatma sırasında çözümleneceklerinden
+ çözümlemedeki bir başarısızlık bu sanal konak tanımlarının yoksayılması
+ ile sonuçlanacaktır. Bu bakımdan önerilmez.</p>
<p><code>VirtualHost</code> yönergesinde görünen her adresin seçimlik bir
- portu olabilir. Eğer bir port belirtilmemişse öntanımlı olarak
- ana_sunucunun son <code>Listen</code> yönergesinin değeri kullanılır.
- Port olarak <code>*</code> belirtildiği takdirde bütün portlar dinlenir.
- Adreslerin tamamını (DNS sorgularındaki çoklu A kayıtları dahil) içeren
- kümeye sankonların <em>adres kümesi</em> denir.</p>
-
- <p><directive module="core">NameVirtualHost</directive> yönergesi ilk
- sankonun IP adresi için kullanılmadığı takdirde bu IP adresine sahip ilk
- sankon IP’ye dayalı sankon olarak ele alınır. IP adresi olarak
- <code>*</code> belirtmek de mümkündür.</p>
-
- <p>Eğer isme dayalı sankonlar kullanılacaksa <code>NameVirtualHost</code>
- yönergesinin bu isme dayalı sankonların IP adresi kümesini içermesi
- <em>gerekir</em>. Başka bir deyişle, yapılandırma dosyanızın
- <code>NameVirtualHost</code> yönergesine sankonların sunucu isimlerinin
- karşı düştüğü IP adresini yazmalısınız.</p>
-
- <p>Çok sayıda <code>NameVirtualHost</code> yönergesi belirtebilirse de her
- IP:port çifti için birden fazla <code>NameVirtualHost</code> yönergesi
- belirtilmemelidir.</p>
-
- <p>Aşağıdaki iki örneğin eşdeğer olması için <code>NameVirtualHost</code>
- ve <code>VirtualHost</code> yönergelerinin sıralamasının bir önemi
- yoktur. (Sadece <em>tek</em> adreslik küme içindeki
- <code>VirtualHost</code> yönergelerinin sırası önemlidir; aşağıya
- bakınız:)</p>
-
-<table><tr>
-<td><example>
- NameVirtualHost 111.22.33.44<br />
- <VirtualHost 111.22.33.44><br />
- # sunucu A<br />
- ...<br />
- </VirtualHost><br />
- <VirtualHost 111.22.33.44><br />
- # sunucu B<br />
- ...<br />
- </VirtualHost><br />
- <br />
- NameVirtualHost 111.22.33.55<br />
- <VirtualHost 111.22.33.55><br />
- # sunucu C<br />
- ...<br />
- </VirtualHost><br />
- <VirtualHost 111.22.33.55><br />
- # sunucu D<br />
- ...<br />
- </VirtualHost>
-</example></td>
-<td><example>
- <VirtualHost 111.22.33.44><br />
- # sunucu A<br />
- </VirtualHost><br />
- <VirtualHost 111.22.33.55><br />
- # sunucu C<br />
- ...<br />
- </VirtualHost><br />
- <VirtualHost 111.22.33.44><br />
- # sunucu B<br />
- ...<br />
- </VirtualHost><br />
- <VirtualHost 111.22.33.55><br />
- # sunucu D<br />
- ...<br />
- </VirtualHost><br />
- <br />
- NameVirtualHost 111.22.33.44<br />
- NameVirtualHost 111.22.33.55<br />
- <br />
-</example></td>
-</tr></table>
-
-
- <p>(Okuma kolaylığı bakımından soldaki sürümü tercih etmenizi öneririz.)
- </p>
-
- <p><code>VirtualHost</code> yönergesi çözümlendikten sonra sankon
- sunucusuna yönergedeki ilk isme atanmış portun öntanımlı olduğu bir
- <code>Listen</code> verilir.</p>
-
- <p>Eğer tüm <code>VirtualHost</code> isimlerinin listesi aynı adres
- kümesine çözümleniyorsa bu isimler birer <code>ServerAlias</code> gibi
- ele alınırlar (bir <code>ServerAlias</code> yönergesi ile geçersiz
- kılınmadıkça). Bir sankon tanımından sonra gelen <code>Listen</code>
- satırlarının o sankonun adres kümesine atanmış portlara bir etkisinin
- olmayacağına dikkat ediniz.</p>
-
- <p>İsim listeleri IP adreslerine göre gruplanır ve bir çiftler tablosuna
- kaydedilir. Eğer IP adresi bir <code>NameVirtualHost</code> yönergesinde
- kullanılmışsa, liste bu IP adresi için tanımlanmış tüm sankonları
- içerir. Eğer bu IP adresinin tanımlandığı bir sankon yoksa o
- <code>NameVirtualHost</code> yönergesi yoksayılır ve günlüğe bir hata
- kaydı düşülür. IP’ye dayalı sankonlar için çiftler listesinde isim
- alanları boştur.</p>
-
- <p>Çiftler listesini işleyen işlevin hızı nedeniyle bir istek sırasında IP
- adresine göre gruplama yaparken kaynak harcaması en düşük düzeyde olur
- hatta neredeyse hiç olmaz. Ek olarak, tablo, IP adresinin son
- sekizlisindeki değişikliklere göre de en iyilenir.</p>
+ portu olabilir. Eğer bir port belirtilmemişse, port olarak <code>*</code>
+ belirtilmiş gibi bütün portlar dinlenir.</p>
+
+ <p>(<code>VirtualHost</code> yönergesinde belirtilen port numaraları Apache
+ httpd'nin dinleyeceği port numaraları olarak yorumlanmaz, sadece bir
+ isteği işleme sokarken hangi <code>VirtualHost</code> bölümünün
+ seçileceğini belirlerler. Sunucunun dinleyeceği adresleri ve portları
+ belirtmek için <directive module="mpm_common">Listen</directive>
+ yönergesini kullanın.)</p>
+
+ <p>Adreslerin tamamını (DNS sorgularındaki çoklu sonuçlar dahil) içeren
+ kümeye <em>sankonların adres kümesi</em> denir.</p>
+
+ <p>Apache httpd, bir IP adresi ve port birleşimi için en belirgin
+ eşleşmelerin listelendiği çok sayıdaki sanal konak arasında ayırdedici
+ olarak istemci tarafından sağlanan HTTP <code>Host</code> başlığını
+ kullanır.</p>
+
+ <p><directive module="core">ServerName</directive> yönergesi sunucu
+ tanımının içinde herhangi bir yerde görünebilirse de her göründüğü yerde
+ bir öncekini iptal eder. Hiç <code>ServerName</code> belirtilmemişse,
+ Apache httpd, sunucu ismini sunucunun IP adresinden saptamaya
+ çalışır.</p>
+
+ <p>Belli bir IP adresi ve port çifti için yapılandırma dosyasındaki ilk
+ isme dayalı sankon önemlidir, çünkü başka hiçbir sankonun ServerName veya
+ ServerAlias yönergesi ile eşleşmeyen bu adres ve port çifti için alınmış
+ tüm isteklerde bu sankon kullanılır. Ayrıca, sunucunun <glossary
+ ref="servernameindication">Sunucu İsmi Belirtimi</glossary>ni
+ desteklemediği durumlarda tüm SSL bağlantıları için bu sankon
+ kullanılır.</p>
<p>Her sankon için bazı değerler öntanımlı olarak atanır. Bunların
başlıcaları:</p>
<ol>
<li>Sankon bir <directive module="core">ServerAdmin</directive>
yönergesi içermiyorsa,
- <directive module="core">ResourceConfig</directive>,
- <directive module="core">AccessConfig</directive>,
<directive module="core">Timeout</directive>,
<directive module="core">KeepAliveTimeout</directive>,
<directive module="core">KeepAlive</directive>,
<directive module="core">MaxKeepAliveRequests</directive>,
- <directive module="core">ReceiveBufferSize</directive> ve
- <directive module="core">SendBufferSize</directive> yönergeleri için
+ <directive module="mpm_common">ReceiveBufferSize</directive> ve
+ <directive module="mpm_common">SendBufferSize</directive> yönergeleri için
öntanımlı değerler ana_sunucudaki eşdeğerlerinden miras alınır. (Yani,
bu yönergeler için ana_sunucudaki son değerler miras alınır.)</li>
<p>Sunucu bir istek durumunda hangi sankonun kullanılacağını şöyle
belirler:</p>
- <section id="hashtable"><title>Değer çiftleri tablosu aranır</title>
+ <section id="hashtable"><title>IP adresi aranır</title>
- <p>Bir istemci tarafından bağlantı ilk yapıldığında önce IP-isim çiftleri
- tablosunda istemcinin bağlandığı IP adresi için bir arama yapılır.</p>
+ <p>Bir adres ve port için bağlantı ilk alındığında Apache httpd tüm
+ <code>VirtualHost</code> tanımlarında bu çifti arar.</p>
- <p>Arama başarısız olursa (IP adresi yoksa) hizmet, istekte belirtilen
- port için bir <code>_default_</code> sankon varsa, o sankondan, yoksa
- ana_sunucudan sunulur.</p>
+ <p>Arama başarısız olursa <code>*</code> (herşey) eşleşmelerine
+ bakılır.</p>
- <p>Eğer çiftler tablosunda IP adresi yoksa port numarası ile eşleştirme
- çabası ayrıca, diğer isme dayalı sanal konaklardaki gibi ard arda ele
- alınmayı gerektiren <code>NameVirtualHost *</code> durumundaki bir
- girdiyle sonuçlanabilir.</p>
+ <p>Bir eşleşme bulunamazsa hizmet ana sunucudan sunulur.</p>
- <p>Arama sonucunda tabloda IP adresi bulunursa sonraki adım hizmetin bir
- IP’ye dayalı sankondan mı yoksa isme dayalı bir sankondan mı
- sunulacağına karar vermektir.</p>
+ <p>Arama sonucunda bu IP adresi için bulunmuş <code>VirtualHost</code>
+ tanımları varsa sonraki adım hizmetin bir IP’ye dayalı sankondan mı yoksa
+ isme dayalı bir sankondan mı sunulacağına karar vermektir.</p>
</section>
<section id="ipbased"><title>IP’ye dayalı sankon</title>
- <p>Eğer tabloda bulduğumuz girdinin isim alanları boşsa bir IP’ye dayalı
- sanal konak bulmuşuz demektir. Artık karar vermek için başka bir şey
- yapmaya gerek yoktur ve istek bu sankondan sunulur.</p>
+ <p>Eğer en iyi eşleşme olarak saptanmış IP adresi ve port çiftini içeren
+ sadece bir <code>VirtualHost</code> yönergesi varsa artık karar vermek
+ için başka bir şey yapmaya gerek yoktur ve istek bu sankondan
+ sunulur.</p>
</section>
<section id="namebased"><title>İsme dayalı sankon</title>
- <p>Tabloda bulduğumuz girdi için bir isim listesi varsa bir isme dayalı
- sankon sözkonusudur. Bu isim listesi, sankonları, ilgili
- <code>VirtualHost</code> bölümlerinin yapılandırma dosyasında yer alış
- sırasına göre içerir.</p>
-
- <p>Bu listedeki ilk sankon (yapılandırma dosyasında belirtilen IP adresine
- sahip ilk sankon) en yüksek önceliğe sahiptir ve sunucu ismi
- belirtilmeyen veya <code>Host:</code> başlık alanı olmayan istekleri bu
- sankon karşılar.</p>
-
- <p>Eğer istemci bir <code>Host:</code> başlık alanı ile istek yapmışsa
- liste bu sankon için aranır ve hizmet <code>ServerName</code> veya
- <code>ServerAlias</code> ile ilk eşleşmenin sağlandığı sankondan
- sunulur. <code>Host:</code> alanında bir port belirtilebilirse de Apache
- daima istemcinin isteği gönderdiği portu gerçek port kabul eder.</p>
-
- <p>Eğer istemci <code>Host:</code> başlık alanı bulunmayan bir HTTP/1.0
- isteği yapmışsa istemcinin hangi sankona bağlanmayı denediğini bilemeyiz
- ve istekteki URI ile mevcut <code>ServerPath</code> değerini
- eşleştirmeye çalışırız. Listedekilerden ilk eşleşen yola sahip sankondan
- hizmeti sunarız.</p>
-
- <p>İstekle eşleşen bir sankon bulunamazsa IP listesinde istemcinin
- bağlandığı portla eşleşen ilk sankondan hizmeti sunarız.</p>
+ <p>>Eğer en iyi eşleşme olarak saptanmış IP adresi ve port çiftini içeren
+ birden fazla <code>VirtualHost</code> yönergesi varsa, sonraki
+ adımlardaki "liste" eşleşen sankonların listesi olup sankonlar listede
+ yapılandırma dosyasındaki yerlerine göre sıralanırlar.</p>
+
+ <p>Bağlantı SSL kullanıyorsa, sunucunun <glossary
+ ref="servernameindication">Sunucu İsmi Belirtimi</glossary>ni
+ desteklediği durumlarda SSL istemci uzlaşımı, istenen konak ismiyle
+ birlikte TLS eklentisini de içeriyorsa, konak ismi, SSL olmayan
+ bağlantılardaki <code>Host:</code> başlığı kullanımına benzer şekilde
+ aşağıdaki gibi kullanılır. Aksi takdirde, SSL bağlantıları için adresin
+ eşleştiği ilk isme dayalı sankon kullanılır. Sunucunun bağlantı için
+ hangi sertifikayı kullanacağını sankon belirlediği için bu önemlidir.</p>
+
+ <p>İstek bir <code>Host:</code> başlık alanı içeriyorsa, listede
+ <code>ServerName</code> veya <code>ServerAlias</code> alanı başlık alanı
+ ile eşleşen ilk sankona bakılır. <code>Host:</code> alanı bir port
+ içerebilirse de Apache httpd bunu yoksayarak daima istemcinin isteği
+ gönderdiği portu gerçek port kabul eder.</p>
+
+ <p>Yapılandırma dosyasındaki belirtilen IP adresiyle eşleşen ilk sankon en
+ yüksek önceliğe sahiptir ve sunucu ismi bilinmeyen ve (bir HTTP/1.0
+ isteği gibi) <code>Host:</code> başlık alanı içermeyen istekleri de
+ yakalar.</p>
</section>
<section id="persistent"><title>Kalıcı bağlantılar</title>
- <p>Yukarıda açıklanan IP araması belli bir TCP/IP oturumunda bir defaya
- mahsus yapıldığı halde bir kalıcı/KeepAlive bağlantı sırasında her istek
- için ayrı bir arama yapılır. Başka bir deyişle, bir istemci tek bir
- kalıcı bağlantı üzerinde farklı isme dayalı sankonlardan sayfa talebinde
- bulunabilir.</p>
+ <p>Yukarıda açıklanan <em>IP araması</em> belli bir TCP/IP oturumunda
+ <em>bir</em> defaya mahsus yapıldığı halde bir kalıcı/KeepAlive bağlantı
+ sırasında <em>her</em> istek için ayrı bir <em>arama</em> yapılır. Başka
+ bir deyişle, bir istemci tek bir kalıcı bağlantı üzerinde farklı isme
+ dayalı sankonlardan sayfa talebinde bulunabilir.</p>
</section>
<section id="observations"><title>İzlenimler</title>
<ul>
- <li>Bir isme dayalı sankon asla bir IP’ye dayalı sankon ile (veya tersi)
- etkileşime girmez. IP’ye dayalı sankonlara sadece kendi adres
- kümesindeki bir IP adresi üzerinden erişilebilir, asla başka bir
- adresten erişilemez. Aynısı isme dayalı sankonlara da uygulanır;
- onlara sadece bir <code>NameVirtualHost</code> yönergesi ile
- tanımlanmış adres kümesindeki bir IP adresi üzerinden
- erişilebilir.</li>
+ <li>İsme dayalı sanal konak işlemleri, sunucunun en iyi eşleşen IP'ye
+ dayalı sanal konağı seçmesinin ardından uygulanır.</li>
+
+ <li>İstemcinin hangi IP adresine bağlandığını umursamıyorsanız, sanal
+ konaklarınızda adres olarak "*" kullanın, böylece yapılandırılmış
+ sankonların hepsine isme dayalı sanal konak işlemleri uygulanır.</li>
<li>Bir IP’ye dayalı sankon için asla <code>ServerAlias</code> ve
<code>ServerPath</code> değerine bakılmaz.</li>
- <li>Yapılandırma dosyası içinde isme/IP’ye dayalı ve
- <code>_default_</code> sankonlar ile <code>NameVirtualHost</code>
- yönergelerinin yer alış sırasının birbirlerine göre bir önemi yoktur.
- Sıralama sadece aynı IP adresine sahip isme dayalı sankonlar arasında
+ <li>Sıralama sadece aynı IP adresine sahip isme dayalı sankonlar arasında
önemlidir. Aynı adres kümesine mensup isme dayalı sankonlardan
yapılandırma dosyasında ilk sırada yer alanı en yüksek önceliğe
sahiptir.</li>
- <li>Güvenlik saikiyle, eşleştirme işlemi sırasında <code>Host:</code>
- başlık alanında belirtilen port asla kullanılmaz. Apache daima
- istemcinin bağlantı kurduğu gerçek portu kullanır.</li>
-
- <li>Değeri başka bir <code>ServerPath</code> yönergesinin değeri için
- önek olan bir <code>ServerPath</code> yönergesi yapılandırma
- dosyasında daha önce yer alıyorsa sonrakiyle eşleşme asla
- gerçekleşmez. (Bu belirsizliği giderecek bir <code>Host:</code> başlık
- alanının mümkün olmadığı varsayılır.)</li>
-
- <li>Eğer tek bir IP adresine sahip IP’ye dayalı iki sankon varsa eşleşme
- daima yapılandırma dosyasında ilk yer alanla gerçekleşir. Böyle bir
- şey kasten yapılmaz. Sunucu böyle bir durumu saptadığında hata
- günlüğünde bir uyarı verecektir.</li>
-
- <li>Bir <code>_default_</code> sankon sadece istekle eşleşen bir IP
- adresi bulunamadığında port numarası eşleştiği takdirde isteğe hizmet
- sunabilir. Port düzeyinde eşleşmenin olabilmesi için isteğin geldiği
- port ile sankon için belirtilen port eşleşmelidir. Olası tüm portlarla
- eşleşmeyi sağlamak üzere yıldız imi (<code>_default_:*</code>
- şeklinde) kullanılabilir. Aynı şey <code>NameVirtualHost *</code>
- sankonlarına da uygulanır.</li>
+ <li>Eşleştirme işlemi sırasında <code>Host:</code>
+ başlık alanında belirtilen port asla kullanılmaz. Apache httpd daima
+ istemcinin isteği gönderdiği gerçek portu kullanır.</li>
+
+ <li>Eğer aynı IP adresine sahip IP’ye dayalı iki sankon varsa, bunlara
+ örtük olarak isme dayalı sanal konak işlemleri uygulanır. 2.3.11
+ sürümünden beri yeni davranış şekli budur.</li>
<li>Ana_sunucunun bir isteğe hizmet sunabilmesi için istemcinin
bağlandığı IP adresi ve port hiçbir yerde belirtilmemiş ve
- <code>_default_</code> dahil hiçbir sankon ile eşleşme sağlanamamış
- olmalıdır. Başka bir deyişle, istemcinin bağlandığı port ile eşleşen
- bir <code>_default_</code> sankon olmadıkça adres ve port belirtmeyen
- bir isteğe ana_sunucu yanıt verecektir.</li>
-
- <li><code>Host:</code> başlık alanı içermeyen veya hedefi bilinmeyen bir
- istek geldiği takdirde, eğer bu istemcinin bağlandığı adres ve port
- için (örneğin, <code>NameVirtualHost</code> ile) tanımlanmış bir isme
- dayalı sankon varsa bu isteğe ne ana_sunucu ne de bir
- <code>_default_</code> sankon hizmet sunabilir.</li>
+ hiçbir sankon ile eşleşme sağlanamamış olmalıdır. Başka bir deyişle,
+ istemcinin bağlandığı port ile eşleşen bir <code>_default_</code>
+ sankon olmadıkça adres ve port belirtmeyen bir isteğe ana_sunucu yanıt
+ verecektir.</li>
<li><code>VirtualHost</code> yönergelerinde asla DNS isimleri
belirtmemelisiniz. Aksi takdirde sunucuyu başlatma sırasında DNS
ipuçlarına ilaveten burada da bazı ipuçları bulacaksınız:</p>
<ul>
- <li>Ana_sunucu tanımlarının hepsini <code>VirtualHost</code>
+ <li>Ana sunucu tanımlarının hepsini <code>VirtualHost</code>
tanımlarının öncesinde bitirin. Bu ayrıca yapılandırmanızın
okunabilirliğini de arttırır; <code>VirtualHost</code> tanımlarının
sonrasına sarkan yapılandırmaların katıştırılması işlemi tüm sanal
konakları etkileyebilen tanımlar bakımından bir
karışıklığa/belirsizliğe sebep olabilir.)</li>
-
- <li>Birbirleriyle ilgili <code>NameVirtualHost</code> ve
- <code>VirtualHost</code> tanımlarını okunabilirliği arttırmak için
- gruplayın.</li>
-
- <li>Değeri başka bir <code>ServerPath</code> için önek olan tanımlamalar
- yapmaktan kaçının. Bundan kaçınamıyorsanız, yolu uzun olanı yolu kısa
- olanın öncesine yerleştirin. Örneğin, "ServerPath /abc/def" önce
- "ServerPath /abc" sonra yer alsın.</li>
</ul>
</section>
+
</manualpage>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 659902:1132802 (outdated) -->
+<!-- English Revision: 1132802 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<summary>
- <p>Bu belgede sanal konaklarla ile ilgili olarak karşılaşılması olası tüm
- senaryolara yer verilmeye çalışılmıştır. Buradaki senaryolar, tek bir
- sunucu üzerinde <a href="name-based.html">isme dayalı</a> veya <a
- href="ip-based.html">IP’ye dayalı</a> sanal konaklar aracılığıyla çok
- sayıda sitenin sunumu ile ilgilidir.
+ <p>Bu belgede <a href="index.html">sanal konaklarla</a> ile ilgili olarak
+ karşılaşılması olası tüm senaryolara yer verilmeye çalışılmıştır.
+ Buradaki senaryolar, tek bir sunucu üzerinde <a href="name-
+ based.html">isme dayalı</a> veya <a href="ip-based.html">IP’ye dayalı</a>
+ sanal konaklar aracılığıyla çok sayıda sitenin sunumu ile ilgilidir.
</p>
</summary>
# Apache’nin 80. portu dinlediğinden emin olalım<br />
Listen 80<br />
<br />
- # Sanal konak istekleri için bütün IP adresleri dinlensin.<br />
- NameVirtualHost *:80<br />
- <br />
<VirtualHost *:80><br />
<indent>
DocumentRoot /siteler/mesela<br />
<p>Yıldız imleri tüm adreslerle eşleşmeyi sağladığından ana sunucu
(yapılandırma dosyası genelindeki yapılandırma - sunucu geneli)
- erişilebilir olmayacaktır. <code>mesela.dom</code> yapılandırma
- dosyasındaki ilk sanal konak olduğundan en yüksek önceliğe sahiptir ve
+ erişilebilir olmayacaktır. Yapılandırma
+ dosyasındaki <code>ServerName mesela.dom</code> yönergeli konak, ilk
+ sanal konak olduğundan en yüksek önceliğe sahiptir ve
<cite>öntanımlı</cite> veya <cite>baskın</cite> site olarak davranır.
Yani, hiçbir <code>ServerName</code> yönergesi ile eşleşmeyen bir istek
alındığında bu istek ilk <code>VirtualHost</code> yapılandırması ile
karşılanır.</p>
<note><title>Bilginize</title>
- <p>İsterseniz, <code>*</code> yerine kendi IP adresinizi yazabilirsiniz.
- Ancak bu durumda bunu hem <code>VirtualHost</code> hem de
- <code>NameVirtualHost</code> için yapmalısınız:</p>
+ <p>IP adresi ve porta dayalı ayrımı umursamıyorsanız, <code>*</code>
+ yerine kendi IP adresinizi yazabilirsiniz.</p>
<example>
NameVirtualHost 192.168.1.22<br />
ServerName sunucu.faraza.dom<br />
DocumentRoot /siteler/anasunucu<br />
<br />
- # Burası da diğer adres için<br />
- NameVirtualHost 192.168.2.2<br />
- <br />
<VirtualHost 192.168.2.2><br />
<indent>
DocumentRoot /siteler/mesela<br />
verebilir.</p>
<example><title>Sunucu yapılandırması</title>
-
- NameVirtualHost 192.168.1.1<br />
- NameVirtualHost 172.20.30.40<br />
<br />
<VirtualHost 192.168.1.1 172.20.30.40><br />
<indent>
<p>Aynı IP adresine sahip çok sayıda konak ismine sahip olduğunuzu ve
bunların bazılarının farklı portları kullanmasını istediğinizi
- varsayalım. <directive module="core">NameVirtualHost</directive>
- yönergesi ile port tanımlamak suretiyle bunu mümkün kılabilirsiniz.
- <code>NameVirtualHost <em>isim:port</em></code> tanımı yapmadan
- veya bunun yerine <directive module="mpm_common">Listen</directive>
- kullanarak <code>VirtualHost <em>isim:port</em></code> kullanmaya
- kalkışırsanız, yapılandırmanız çalışmayacaktır.</p>
+ varsayalım. Aşağıdaki örnekte, isim eşleşmesinin, en iyi eşleşen IP
+ adresi ve port çifti saptandıktan sonra yer alması gösterilmiştir. </p>
<example><title>Sunucu yapılandırması</title>
Listen 80<br />
Listen 8080<br />
<br />
- NameVirtualHost 172.20.30.40:80<br />
- NameVirtualHost 172.20.30.40:8080<br />
- <br />
<VirtualHost 172.20.30.40:80><br />
<indent>
ServerName mesela.dom<br />
<section id="mixed">
<title>Hem isme hem de IP‘ye dayalı sanal konaklar</title>
- <p>Bazı adreslerde isme dayalı, bazılarında da IP’ye dayalı sanal konaklar
- çalışsın istersek...</p>
+ <p>Bir <code>VirtualHost</code> yönergesinde belirtilen bir IP adresi başka
+ bir sanal konakta görünmüyorsa bu sankon kesinlikle IP'ye dayalı bir
+ sanal konaktır.</p>
<example><title>Sunucu yapılandırması</title>
Listen 80<br />
<br />
- NameVirtualHost 172.20.30.40<br />
- <br />
<VirtualHost 172.20.30.40><br />
<indent>
DocumentRoot /siteler/mesela<br />
<p>80. porttan gelen IP adresi belirtilmemiş isteklere
<code>_default_</code> sanal konağı, diğer portlardan gelen adres
belirtilmemiş isteklere ise ana sunucu hizmet verecektir.</p>
- </section>
+
+ <p>Bir sanal konak bildiriminde <code>*</code> kullanımı
+ <code>_default_</code> kullanımından daha yüksek öncelik sağlar.</p>
+ </section>
</section>
sunmamız lazım.</p>
<p>Çözüm kolay, çünkü yapacağımız sadece <code>VirtualHost</code>
- yönergesine yeni IP adresini (<code>192.168.2.2</code>) eklemek olacak.</p>
+ yönergesine yeni IP adresini (<code>192.168.2.2</code>) eklemek
+ olacak.</p>
<example>
<title>Sunucu yapılandırması</title>
<example>
<title>Sunucu yapılandırması</title>
- NameVirtualHost 172.20.30.40<br />
- <br />
<VirtualHost 172.20.30.40><br />
<indent>
# ilk sanal konak<br />
DocumentRoot /siteler/baska<br />
RewriteEngine On<br />
- RewriteRule ^/.* /siteler/baska/index.html<br />
+ RewriteRule . /siteler/baska/index.html<br />
# ...<br />
</indent>
</VirtualHost><br />
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 752951:1300911 (outdated) -->
+<!-- English Revision: 1300911 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
Reviewed by: Orhan Berent <berent belgeler.org>
<manualpage metafile="ip-based.xml.meta">
<parentdocument href="./">Sanal Konaklar</parentdocument>
- <title>Apache’de IP’ye Dayalı Sanal Konak Desteği</title>
+ <title>IP’ye Dayalı Sanal Konak Desteği</title>
<seealso>
<a href="name-based.html">İsme Dayalı Sanal Konak Desteği</a>
</seealso>
+<section id="explanation"><title>IP'ye dayalı sanal konak desteği nedir</title>
+ <p>IP'ye dayalı sanal konak desteği, bir isteğin alındığı IP adresi ve
+ porta bağlı olarak farklı yönergeleri uygulamak için bir yoldur. Özetle,
+ farklı siteleri farklı portlardan ve arayüzlerden sunmakta
+ kullanılır.</p>
+
+ <p>Çoğu durumda, <a href="name-based.html">isme dayalı sanal konaklar</a>
+ birçok sanal konağın tek bir IP adresi/port çiftini paylaşmasını
+ sağladığından daha kullanışlıdır. Neyi kullanacağınıza karar vermek için
+ <a href="name-based.html#namevip">İsme dayalı ve IP’ye dayalı Sanal
+ Konaklar</a> bölümüne bakınız.</p>
+</section>
+
<section id="requirements"><title>Sistem gereksinimleri</title>
<p><cite>IP’ye dayalı</cite> deyince, sunucunun <strong>her IP’ye dayalı
- sanal konak için ayrı bir IP adresi</strong>ne sahip olduğunu anlıyoruz.
- Bunun olması için, makine ya çok sayıda ağ bağlantısına sahiptir ya da
- makinede, günümüzde çoğu işletim sistemi tarafından desteklenen sanal
- arabirimler kullanılıyordur. (Sanal arabirimlerle ilgili ayrıntılar için
- sistem belgelerinize bakınız; bu konu genellikle IP rumuzları (ip aliases)
- olarak geçer ve ayarlamak için genellikle "ifconfig" komutu
- kullanılır.)</p>
-
+ sanal konak için ayrı bir IP adresi/port çifti</strong>ne sahip olduğunu
+ anlıyoruz. Bunun olması için, makine ya çok sayıda ağ bağlantısına
+ sahiptir ya da makinede, günümüzde çoğu işletim sistemi tarafından
+ desteklenen sanal arabirimler ve/veya çok sayıda port kullanılıyordur.
+ (Sanal arabirimlerle ilgili ayrıntılar için sistem belgelerinize bakınız;
+ bu konu genellikle IP rumuzları (ip aliases) olarak geçer ve ayarlamak
+ için genellikle "ifconfig" komutu kullanılır.)</p>
+
+ <p>Apache HTTP Sunucusu terminolojisinde, tek bir IP adresinin çok sayıda
+ TCP portuyla kullanımı IP'ye dayalı sanal konak desteği olarak
+ bilinir.</p>
</section>
<section id="howto"><title>Apache nasıl ayarlanır?</title>
<li>Güvenli bölgeler oluşturmanız gerekiyordur. Örneğin, şirket2’deki hiç
kimse dosya sistemi üzerinden şirket1’e ait verileri okuyamasın, sadece
herkes gibi tarayıcı kullanarak okuyabilsin istenebilir. Bu durumda,
- <directive module="mpm_common">User</directive>,
- <directive module="mpm_common">Group</directive>,
+ <directive module="mod_unixd">User</directive>,
+ <directive module="mod_unixd">Group</directive>,
<directive module="mpm_common">Listen</directive> ve
<directive module="core">ServerRoot</directive> yönergeleri farklı
değerlerle yapılandırılmış iki ayrı süreç çalıştırmanız gerekir.</li>
yönergesi kullanılır. Örnek:</p>
<example>
- Listen www.birkobi.dom:80
+ Listen 192.0.2.100:80
</example>
<p>Burada konak ismi yerine IP adresi kullanmanız önerilir (ayrıntılar için
DocumentRoot /gruplar/birkobi/belgeler<br />
ServerName www.birkobi.dom<br />
ErrorLog /gruplar/birkobi/günlükler/hatalar.log<br />
- TransferLog /gruplar/birkobi/günlükler/erisim.log
+ CustomLog /gruplar/birkobi/günlükler/erisim.log combined
</indent>
</VirtualHost><br />
<br />
DocumentRoot /gruplar/digerkobi/belgeler<br />
ServerName www.digerkobi.dom<br />
ErrorLog /gruplar/digerkobi/günlükler/hatalar.log<br />
- TransferLog /gruplar/digerkobi/günlükler/erisim.log
+ CustomLog /gruplar/digerkobi/günlükler/erisim.log combined
</indent>
</VirtualHost>
</example>
<a href="../dns-caveats.html">DNS ile ilgili konular</a>
belgesine bakınız).</p>
+ <p>Belli bir IP adresi veya port kullanımı bunların joker eşdeğerlerine
+ göre daha yüksek öncelik sağlar ve eşleşen bir sanal konak da genel
+ sunucuya göre öncelik alır.</p>
+
<p>Süreç oluşturmayı denetleyen yönergeler ve bir kaç başka yönerge dışında
hemen hemen tüm yapılandırma yönergeleri <directive
- module="core">VirtualHost</directive> bölümleri içinde kullanılabilir. Bir
- yönergenin <directive module="core">VirtualHost</directive> bölümlerinde
- kullanılıp kullanılmayacağını öğrenmek için <a
- href="../mod/directives.html">yönerge dizinini</a> kullanarak yönergenin <a
- href="../mod/directive-dict.html#Context">Bağlam</a>’ına bakınız.</p>
+ module="core">VirtualHost</directive> bölümleri içinde kullanılabilir.
+ Bir yönergenin <directive module="core">VirtualHost</directive>
+ bölümlerinde kullanılıp kullanılmayacağını öğrenmek için <a
+ href="../mod/directives.html">yönerge dizinini</a> kullanarak yönergenin
+ <a href="../mod/directive-dict.html#Context">Bağlam</a>’ına bakınız.</p>
<p><a href="../suexec.html">suEXEC sarmalayıcısı</a> kullanıldığı takdirde
<directive module="mod_suexec">SuexecUserGroup</directive> yönergesi de
<p><em>GÜVENLİK:</em>Günlük dosyalarının yazılacağı yeri belirlerken,
Apache’yi başlatan kullanıcıdan başka kimsenin yazamayacağı bir yerin
- seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından önemlidir.
- Ayrıntılar için <a href="../misc/security_tips.html">güvenlik ipuçları</a>
- belgesine bakınız.</p>
+ seçilmesi bazı güvenlik risklerini ortadan kaldırmak bakımından
+ önemlidir. Ayrıntılar için <a href="../misc/security_tips.html">güvenlik
+ ipuçları</a> belgesine bakınız.</p>
</section>
</manualpage>