1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
4 <!-- English Revision: 1174747:1673652 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <manualpage metafile="dns-caveats.xml.meta">
29 <title>Apache HTTP Sunucusu ve DNS ile ilgili Konular</title>
32 <p>Bu sayfanın konusu şöyle özetlenebilirdi: Yapılandırma dosyalarınızda
33 DNS sorguları yapılmasını gerektirecek ayarlamalardan kaçınınız. Eğer
34 yapılandırma dosyalarınızda DNS sorgusu yapılarak çözümlenebilecek
35 adresler bulunursa sunucunuz beklenmedik davranışlar (hiç
36 başlamayabilir) gösterebileceği gibi hizmet reddi veya hizmet
37 hırsızlığı (bazı sanal konakların diğerlerine giden sayfaları çalma
38 olasılığı dahil) saldırılarına açık hale gelebilir.</p>
41 <section id="example">
42 <title>Basit Bir Örnek</title>
45 # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br />
46 <VirtualHost falan.fesmekan.dom>
48 ServerAdmin filanca@fesmekan.dom <br />
49 DocumentRoot /siteler/fesmekan
54 <p>httpd’nin beklendiği gibi işlemesi için her sanal konak için iki
55 veriye mutlaka ihtiyacı vardır: <directive module="core"
56 >ServerName</directive> ve sunucunun bağlantı kabul edip hizmet
57 sunacağı en az bir IP adresi. Yukarıdaki örnekte IP adresi
58 bulunmamaktadır, dolayısıyla Apache, <code>falan.fesmekan.dom</code>
59 adresi için bir DNS sorgusu yapmak zorundadır. Eğer sunucu,
60 yapılandırma dosyasını çözümlediği sırada bir sebeple DNS sunucusuna
61 erişemezse bu sanal konak <em>yapılandırılmayacak</em> ve bu sanal konağa
62 yapılan isteklere yanıt verilemeyecektir.</p>
64 <p><code>falan.fesmekan.dom</code>’un 192.168.2.1 IP adresine sahip
65 olduğunu varsayarsak yapılandırma şöyle olurdu:</p>
68 # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br />
69 <VirtualHost 192.168.2.1> <br />
71 ServerAdmin filanca@fesmekan.dom <br />
72 DocumentRoot /siteler/fesmekan
77 <p>Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için
78 httpd’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu
79 başarısız olursa kısmi bir yapılandırmaya gidilir.
80 Eğer sanal konak isme dayalı ise sanal konak
81 kısmen bile yapılandırılmaz. IP’ye dayalı sanal konaklar büyük oranda
82 çalışır, fakat (örneğin, bir Redirect varlığında olduğu gibi) sunucu ismini
83 içeren tam bir adres üretilmesini gerektiren bir durumda, sunucu geçerli
84 bir adres üretemez.</p>
86 <p>Her iki sorunu da çözen yapılandırma şöyle olurdu:</p>
89 <VirtualHost 192.168.2.1> <br />
91 ServerName falan.fesmekan.dom <br />
92 ServerAdmin filanca@fesmekan.dom <br />
93 DocumentRoot /siteler/fesmekan
100 <title>Hizmet Reddi</title>
102 <p>Şöyle bir yapılandırmanız olsun:</p>
105 <VirtualHost falan.fesmekan.dom><br />
107 ServerAdmin filanca@fesmekan.dom <br />
108 DocumentRoot /siteler/fesmekan
110 </VirtualHost><br />
112 <VirtualHost misal.mesela.dom><br />
114 ServerAdmin falanca@mesela.dom<br />
115 DocumentRoot /siteler/mesela<br />
120 <p><code>falan.fesmekan.dom</code>’a 192.168.2.1,
121 <code>misal.mesela.dom</code>’a 192.168.2.2 atadığınızı fakat,
122 <code>mesela.dom</code>’un DNS kaydının sizin denetiminizde olmadığını
123 varsayalım. Bu yapılandırmayla, <code>mesela.dom</code>’u
124 <code>fesmekan.dom</code>’a giden tüm trafiği çalabilecek duruma
125 getirirsiniz. Bunu gerçekleştirmek için DNS kaydında
126 <code>misal.mesela.dom</code>’a 192.168.2.1 adresinin atanması
127 yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı
128 <code>misal.mesela.dom</code>’a istedikleri IP adresini atamaktan
129 onları alıkoyamazsınız.</p>
131 <p>192.168.2.1’e gelen isteklerin hepsine
132 (<code>http://falan.fesmekan.dom/biryer</code> şeklinde yazılan
133 adresler dahil) <code>mesela.dom</code> sanal konağınca hizmet
134 sunulacaktır. Apache’nin gelen istekleri sunduğu sanal konaklarla nasıl
135 eşleştirdiğini bilirseniz bunun sebebini kolayca anlarsınız. Bunu
136 kabataslak açıklayan <a href="vhosts/details.html">bir belgemiz
141 <title>"Ana Sunucu" Adresi</title>
143 <p><a href="vhosts/name-based.html">İsme dayalı sanal konak
144 desteği</a>, httpd’nin çalıştığı makinenin IP adres(ler)ini de bilmesini
145 gerektirir. Bu adresi elde etmek için sunucu, ya sunucu genelinde geçerli
146 <directive module="core">ServerName</directive> yönergesine bakar ya da bir
147 C işlevi olan <code>gethostname</code>’i kullanır (işlev, komut
148 isteminden <code>hostname</code> komutuna dönen yanıtın aynısını
149 döndürür) ve ardından bu adresle ilgili olarak bir DNS sorgusu yapar.
150 Bu sorgudan kaçınmanın henüz bir yolu yoktur.</p>
152 <p>Eğer bu sorgunun (DNS sunucusunun çökmüş olması gibi bir nedenle)
153 başarısız olabileceğinden korkuyorsanız, makine ismini ve IP adresini
154 <code>/etc/hosts</code> dosyanıza yazabilirsiniz (Makinenizin düzgün
155 olarak açılabilmesi için zaten bu kaydı yapmış olmanız gerekir).
156 Kullandığınız işletim sistemine bağlı olarak bu kaydın
157 <code>/etc/resolv.conf</code> veya <code>/etc/nsswitch.conf</code>
158 dosyasında bulunması gerekebilir.</p>
160 <p>Herhangi bir nedenle sunucunuz bir DNS sorgusu yapmıyorsa veya
161 yapmamalıysa, httpd’yi <code>HOSTRESORDER</code> ortam değişkenine
162 "<code>local</code>" değerini atadıktan sonra çalıştırabilirsiniz. Bu
163 tamamen işletim sistemine ve kullandığınız çözümleyici kütüphanelere
164 bağlıdır. Ayrıca, ortamı denetlemek için <module>mod_env</module>
165 kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim
166 sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.</p>
170 <title>Bu Sorunlardan Kaçınmak için İpuçları</title>
173 <li><directive module="core">VirtualHost</directive> yönergelerinizde
174 IP adresleri kullanınız.</li>
176 <li><directive module="mpm_common">Listen</directive> yönergelerinizde
177 IP adresleri kullanınız.</li>
179 <li>Tüm sanal konakların ayrı birer <directive module="core"
180 >ServerName</directive> yönergesi olsun.</li>
182 <li>Hiçbir sayfa sunulmayan bir <code><VirtualHost
183 _default_:*></code> sanal konağınız olsun.</li>