| <?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: 1174747:1673652 (outdated) --> |
| <!-- ===================================================== |
| Translated by: Nilgün Belma Bugüner <nilgun belgeler.org> |
| Reviewed by: Orhan Berent <berent belgeler.org> |
| ========================================================== --> |
| |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manualpage metafile="dns-caveats.xml.meta"> |
| |
| <title>Apache HTTP Sunucusu ve DNS ile ilgili Konular</title> |
| |
| <summary> |
| <p>Bu sayfanın konusu şöyle özetlenebilirdi: Yapılandırma dosyalarınızda |
| DNS sorguları yapılmasını gerektirecek ayarlamalardan kaçınınız. Eğer |
| yapılandırma dosyalarınızda DNS sorgusu yapılarak çözümlenebilecek |
| adresler bulunursa sunucunuz beklenmedik davranışlar (hiç |
| başlamayabilir) gösterebileceği gibi hizmet reddi veya hizmet |
| hırsızlığı (bazı sanal konakların diğerlerine giden sayfaları çalma |
| olasılığı dahil) saldırılarına açık hale gelebilir.</p> |
| </summary> |
| |
| <section id="example"> |
| <title>Basit Bir Örnek</title> |
| |
| <example> |
| # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br /> |
| <VirtualHost falan.fesmekan.dom> |
| <indent> |
| ServerAdmin filanca@fesmekan.dom <br /> |
| DocumentRoot /siteler/fesmekan |
| </indent> |
| </VirtualHost> |
| </example> |
| |
| <p>httpd’nin beklendiği gibi işlemesi için her sanal konak için iki |
| veriye mutlaka ihtiyacı vardır: <directive module="core" |
| >ServerName</directive> ve sunucunun bağlantı kabul edip hizmet |
| sunacağı en az bir IP adresi. Yukarıdaki örnekte IP adresi |
| bulunmamaktadır, dolayısıyla Apache, <code>falan.fesmekan.dom</code> |
| adresi için bir DNS sorgusu yapmak zorundadır. Eğer sunucu, |
| yapılandırma dosyasını çözümlediği sırada bir sebeple DNS sunucusuna |
| erişemezse bu sanal konak <em>yapılandırılmayacak</em> ve bu sanal konağa |
| yapılan isteklere yanıt verilemeyecektir.</p> |
| |
| <p><code>falan.fesmekan.dom</code>’un 192.168.2.1 IP adresine sahip |
| olduğunu varsayarsak yapılandırma şöyle olurdu:</p> |
| |
| <example> |
| # Bu yetersiz bir yapılandırma örneğidir, sunucunuzda kullanmayın. <br /> |
| <VirtualHost 192.168.2.1> <br /> |
| <indent> |
| ServerAdmin filanca@fesmekan.dom <br /> |
| DocumentRoot /siteler/fesmekan |
| </indent> |
| </VirtualHost> |
| </example> |
| |
| <p>Ancak, bu sefer de bu sanal konağın sunucu ismini öğrenmek için |
| httpd’nin bir ters DNS sorgusu yapması gerekecektir. Eğer bu sorgu |
| başarısız olursa kısmi bir yapılandırmaya gidilir. |
| Eğer sanal konak isme dayalı ise sanal konak |
| kısmen bile yapılandırılmaz. IP’ye dayalı sanal konaklar büyük oranda |
| çalışır, fakat (örneğin, bir Redirect varlığında olduğu gibi) sunucu ismini |
| içeren tam bir adres üretilmesini gerektiren bir durumda, sunucu geçerli |
| bir adres üretemez.</p> |
| |
| <p>Her iki sorunu da çözen yapılandırma şöyle olurdu:</p> |
| |
| <example> |
| <VirtualHost 192.168.2.1> <br /> |
| <indent> |
| ServerName falan.fesmekan.dom <br /> |
| ServerAdmin filanca@fesmekan.dom <br /> |
| DocumentRoot /siteler/fesmekan |
| </indent> |
| </VirtualHost> |
| </example> |
| </section> |
| |
| <section id="denial"> |
| <title>Hizmet Reddi</title> |
| |
| <p>Şöyle bir yapılandırmanız olsun:</p> |
| |
| <example> |
| <VirtualHost falan.fesmekan.dom><br /> |
| <indent> |
| ServerAdmin filanca@fesmekan.dom <br /> |
| DocumentRoot /siteler/fesmekan |
| </indent> |
| </VirtualHost><br /> |
| <br /> |
| <VirtualHost misal.mesela.dom><br /> |
| <indent> |
| ServerAdmin falanca@mesela.dom<br /> |
| DocumentRoot /siteler/mesela<br /> |
| </indent> |
| </VirtualHost> |
| </example> |
| |
| <p><code>falan.fesmekan.dom</code>’a 192.168.2.1, |
| <code>misal.mesela.dom</code>’a 192.168.2.2 atadığınızı fakat, |
| <code>mesela.dom</code>’un DNS kaydının sizin denetiminizde olmadığını |
| varsayalım. Bu yapılandırmayla, <code>mesela.dom</code>’u |
| <code>fesmekan.dom</code>’a giden tüm trafiği çalabilecek duruma |
| getirirsiniz. Bunu gerçekleştirmek için DNS kaydında |
| <code>misal.mesela.dom</code>’a 192.168.2.1 adresinin atanması |
| yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı |
| <code>misal.mesela.dom</code>’a istedikleri IP adresini atamaktan |
| onları alıkoyamazsınız.</p> |
| |
| <p>192.168.2.1’e gelen isteklerin hepsine |
| (<code>http://falan.fesmekan.dom/biryer</code> şeklinde yazılan |
| adresler dahil) <code>mesela.dom</code> sanal konağınca hizmet |
| sunulacaktır. Apache’nin gelen istekleri sunduğu sanal konaklarla nasıl |
| eşleştirdiğini bilirseniz bunun sebebini kolayca anlarsınız. Bunu |
| kabataslak açıklayan <a href="vhosts/details.html">bir belgemiz |
| mevcuttur</a>.</p> |
| </section> |
| |
| <section id="main"> |
| <title>"Ana Sunucu" Adresi</title> |
| |
| <p><a href="vhosts/name-based.html">İsme dayalı sanal konak |
| desteği</a>, httpd’nin çalıştığı makinenin IP adres(ler)ini de bilmesini |
| gerektirir. Bu adresi elde etmek için sunucu, ya sunucu genelinde geçerli |
| <directive module="core">ServerName</directive> yönergesine bakar ya da bir |
| C işlevi olan <code>gethostname</code>’i kullanır (işlev, komut |
| isteminden <code>hostname</code> komutuna dönen yanıtın aynısını |
| döndürür) ve ardından bu adresle ilgili olarak bir DNS sorgusu yapar. |
| Bu sorgudan kaçınmanın henüz bir yolu yoktur.</p> |
| |
| <p>Eğer bu sorgunun (DNS sunucusunun çökmüş olması gibi bir nedenle) |
| başarısız olabileceğinden korkuyorsanız, makine ismini ve IP adresini |
| <code>/etc/hosts</code> dosyanıza yazabilirsiniz (Makinenizin düzgün |
| olarak açılabilmesi için zaten bu kaydı yapmış olmanız gerekir). |
| Kullandığınız işletim sistemine bağlı olarak bu kaydın |
| <code>/etc/resolv.conf</code> veya <code>/etc/nsswitch.conf</code> |
| dosyasında bulunması gerekebilir.</p> |
| |
| <p>Herhangi bir nedenle sunucunuz bir DNS sorgusu yapmıyorsa veya |
| yapmamalıysa, httpd’yi <code>HOSTRESORDER</code> ortam değişkenine |
| "<code>local</code>" değerini atadıktan sonra çalıştırabilirsiniz. Bu |
| tamamen işletim sistemine ve kullandığınız çözümleyici kütüphanelere |
| bağlıdır. Ayrıca, ortamı denetlemek için <module>mod_env</module> |
| kullanmıyorsanız, CGI’ler de bundan etkilenir. En iyisi işletim |
| sisteminizin SSS belgelerini ve kılavuz sayfalarını okumaktır.</p> |
| </section> |
| |
| <section id="tips"> |
| <title>Bu Sorunlardan Kaçınmak için İpuçları</title> |
| |
| <ul> |
| <li><directive module="core">VirtualHost</directive> yönergelerinizde |
| IP adresleri kullanınız.</li> |
| |
| <li><directive module="mpm_common">Listen</directive> yönergelerinizde |
| IP adresleri kullanınız.</li> |
| |
| <li>Tüm sanal konakların ayrı birer <directive module="core" |
| >ServerName</directive> yönergesi olsun.</li> |
| |
| <li>Hiçbir sayfa sunulmayan bir <code><VirtualHost |
| _default_:*></code> sanal konağınız olsun.</li> |
| </ul> |
| </section> |
| |
| </manualpage> |