mirror of
https://github.com/apache/httpd.git
synced 2025-08-15 23:27:39 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673807 13f79535-47bb-0310-9956-ffa450edef68
188 lines
8.1 KiB
XML
188 lines
8.1 KiB
XML
<?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>
|