mirror of
https://github.com/apache/httpd.git
synced 2025-07-05 16:21:14 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1782247 13f79535-47bb-0310-9956-ffa450edef68
613 lines
22 KiB
XML
613 lines
22 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: 1132802:1781930 (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="examples.xml.meta">
|
||
<parentdocument href="./">Sanal Konaklar</parentdocument>
|
||
<title>Sanal Konak Örnekleri</title>
|
||
|
||
<summary>
|
||
|
||
<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>
|
||
|
||
<section id="purename">
|
||
<title>Tek bir IP ile çok sayıda isme dayalı site</title>
|
||
|
||
<p>Bu örnekte, makinenizin tek bir IP adresine sahip olduğunu ve bu
|
||
makineye <code>mesela.dom</code> ve <code>faraza.dom</code> şeklinde
|
||
(DNS A kayıtları sayesinde) farklı isimlerle erişilebildiğini
|
||
varsayalım.</p>
|
||
|
||
<note><title>Bilginize</title><p>Apache sunucusu üzerinde sanal konakları
|
||
yapılandırmakla bu konak isimleri için sihirli bir şekilde DNS
|
||
kayıtlarının da oluşturulmasını sağlamış olmazsınız. Bu isimler için
|
||
ilgili DNS kayıtlarında sizin IP adresinize çözümlenen A kayıtlarının
|
||
olması gerekir, yoksa sitenize kimse erişemez. Sitelere erişimi yerel
|
||
olarak denemek isterseniz, bu girdileri <code>hosts</code> dosyanıza
|
||
yazabilirsiniz. Fakat bu sadece sizin makinenizde çalışır. Yerel
|
||
ağınızdaki her makinenin <code>hosts</code> dosyasına bu girdileri
|
||
yazarak yerel ağdan erişimi bu yolla sağlayabilirsiniz ama dış ağdan
|
||
gelecek ziyaretçileriniz için DNS kayıtlarınızın olması şarttır.</p>
|
||
</note>
|
||
|
||
<example><title>Sunucu yapılandırması</title>
|
||
|
||
# Apache’nin 80. portu dinlediğinden emin olalım<br />
|
||
Listen 80<br />
|
||
<br />
|
||
<VirtualHost *:80><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela<br />
|
||
ServerName mesela.dom<br />
|
||
<br />
|
||
# Diğer yönergeler, burada ...<br />
|
||
<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost *:80><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza<br />
|
||
ServerName faraza.dom<br />
|
||
<br />
|
||
# Diğer yönergeler, burada ...<br />
|
||
<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<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. 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>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 />
|
||
<br />
|
||
<VirtualHost 192.168.1.22><br />
|
||
# vs. ...
|
||
</example>
|
||
|
||
<p>Bununla birlikte, IP adresinin önceden kestirilebilir olmadığı
|
||
sistemlerde, örneğin, hizmet sağlayıcınıza çevirmeli ağ ile bağlanıyor
|
||
ve onun rasgele atadığı bir IP adresi için bir devingen DNS çözümü
|
||
kullanıyorsanız, IP adresi değil de <code>*</code> kullanmak daha çok
|
||
işinize yarayacaktır. Yıldız imi her IP adresi ile eşleşeceğinden IP
|
||
adresiniz değişse bile bu yapılandırmayı değiştirmeden
|
||
kullanabilirsiniz.</p>
|
||
</note>
|
||
|
||
<p>Yukarıdaki yapılandırmayı hemen hemen tüm isme dayalı sanal konaklar
|
||
için kullanabilirsiniz. Bu yapılandırmanın çalışmayacağı tek durum,
|
||
farklı içerikleri farklı IP adreslerinden sunma gereğiyle
|
||
karşılaşmaktır.</p>
|
||
|
||
</section>
|
||
|
||
<section id="twoips">
|
||
<title>IP adresleri farklı çok sayıda isme dayalı site</title>
|
||
|
||
<note><title>Bilginize</title>
|
||
<p>Burada açıklanan teknikler istendiği kadar çok IP adresine
|
||
genişletilebilir.</p>
|
||
</note>
|
||
|
||
<p>Sunucunun iki IP adresi olsun. Birinden "ana sunucu"
|
||
(<code>192.168.1.2</code>) diğerinden <code>mesela.dom</code>
|
||
<code>192.168.2.2</code> hizmet versin. Bu arada başka sanal konakları
|
||
da sunabilelim istiyoruz.</p>
|
||
|
||
<example><title>Sunucu yapılandırması</title>
|
||
|
||
Listen 80<br />
|
||
<br />
|
||
# Bu, 192.168.1.2 adresindeki "ana sunucu" olsun<br />
|
||
ServerName sunucu.faraza.dom<br />
|
||
DocumentRoot /siteler/anasunucu<br />
|
||
<br />
|
||
<VirtualHost 192.168.2.2><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela<br />
|
||
ServerName mesela.dom<br />
|
||
<br />
|
||
# Diğer yönergeler, burada ...<br />
|
||
<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 192.168.2.2><br />
|
||
<indent>
|
||
DocumentRoot /siteler/falanca<br />
|
||
ServerName falanca.dom<br />
|
||
<br />
|
||
# Diğer yönergeler, burada ...<br />
|
||
<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p><code>192.168.2.2</code> adresinden gelmeyen tüm isteklere ana sunucu
|
||
(<code>sunucu.faraza.dom</code>), <code>192.168.2.2</code> adresinden
|
||
gelen sunucu ismi belirtmeyenler ile <code>Host:</code> başlığı
|
||
belirtmeyenlere ise <code>mesela.dom</code> hizmet verecektir.</p>
|
||
|
||
</section>
|
||
|
||
<section id="intraextra"><title>Aynı içeriği farklı IP adresleriyle sunmak
|
||
(örn., dahili ve harici ağlara)</title>
|
||
|
||
<p>Sunucu makine iki IP adresine sahip olsun. Biri iç ağa
|
||
(<code>192.168.1.1</code>) diğeri dış ağa (<code>172.20.30.40</code>)
|
||
bakıyor olsun. <code>sunucu.mesela.dom</code> ismi dış ağda dış ağa
|
||
bakan IP’ye, iç ağda ise iç ağa bakan IP’ye çözümleniyor olsun.</p>
|
||
|
||
<p>Bu durumda, sunucu hem iç hem de dış ağdan gelen isteklere aynı içerik,
|
||
dolayısıyla aynı <code>VirtualHost</code> bölümü ile hizmet
|
||
verebilir.</p>
|
||
|
||
<example><title>Sunucu yapılandırması</title>
|
||
<br />
|
||
<VirtualHost 192.168.1.1 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/sunucu<br />
|
||
ServerName sunucu.mesela.dom<br />
|
||
ServerAlias sunucu<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p>Artık, hem iç hem de dış ağdan gelen isteklere aynı
|
||
<code>VirtualHost</code> bölümünden hizmet sunulacaktır.</p>
|
||
|
||
<note><title>Bilginize:</title>
|
||
<p>İç ağdan istek yapan biri, tam nitelenmiş konak ismi
|
||
<code>sunucu.mesela.dom</code> yerine makine ismini
|
||
(<code>sunucu</code>) kullanabilir (<code>ServerAlias sunucu</code>
|
||
satırına dikkat).</p>
|
||
|
||
<p>Ayrıca, yukarıdaki gibi iki ayrı IP adresi belirtmek yerine sadece
|
||
<code>*</code> belirtmekle sunucunun tüm IP adreslerine yine aynı
|
||
içerikle yanıt vereceğine dikkat ediniz.</p>
|
||
</note>
|
||
|
||
</section>
|
||
|
||
<section id="port"><title>Farklı portlarla farklı siteler</title>
|
||
|
||
<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. 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 />
|
||
<VirtualHost 172.20.30.40:80><br />
|
||
<indent>
|
||
ServerName mesela.dom<br />
|
||
DocumentRoot /siteler/mesela-80<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40:8080><br />
|
||
<indent>
|
||
ServerName mesela.dom<br />
|
||
DocumentRoot /siteler/mesela-8080<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40:80><br />
|
||
<indent>
|
||
ServerName faraza.dom<br />
|
||
DocumentRoot /siteler/faraza-80<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40:8080><br />
|
||
<indent>
|
||
ServerName faraza.dom<br />
|
||
DocumentRoot /siteler/faraza-8080<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
</section>
|
||
|
||
<section id="ip"><title>IP’ye dayalı sanal konaklar</title>
|
||
|
||
<p>Sunucu makinenin, biri <code>mesela.dom</code> adından çözümlenen
|
||
<code>172.20.30.40</code>, diğeri <code>faraza.dom</code> adından
|
||
çözümlenen <code>172.20.30.50</code> diye iki IP adresi olsun.</p>
|
||
|
||
<example><title>Sunucu yapılandırması</title>
|
||
|
||
Listen 80<br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela<br />
|
||
ServerName mesela.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.50><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza<br />
|
||
ServerName faraza.dom<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p><code><VirtualHost></code> yönergelerinde belirtilmeyen
|
||
adreslerle yapılan isteklere (örneğin, <code>localhost</code>) sunucu
|
||
genelindeki yapılandırma ile ana sunucu yanıt verecektir.</p>
|
||
</section>
|
||
|
||
<section id="ipport">
|
||
<title>Hem IP’ye hem de porta dayalı sanal konaklar</title>
|
||
|
||
<p>Sunucu makinenin, biri <code>mesela.dom</code> adından çözümlenen
|
||
<code>172.20.30.40</code>, diğeri <code>faraza.dom</code> adından
|
||
çözümlenen <code>172.20.30.50</code> diye iki IP adresi olsun ve iki
|
||
konak da hem 80 hem de 8080 portlarında çalışsınlar istiyoruz.</p>
|
||
|
||
<example><title>Sunucu yapılandırması</title>
|
||
|
||
Listen 172.20.30.40:80<br />
|
||
Listen 172.20.30.40:8080<br />
|
||
Listen 172.20.30.50:80<br />
|
||
Listen 172.20.30.50:8080<br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40:80><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela-80<br />
|
||
ServerName mesela.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40:8080><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela-8080<br />
|
||
ServerName mesela.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.50:80><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza-80<br />
|
||
ServerName faraza.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.50:8080><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza-8080<br />
|
||
ServerName faraza.dom<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
</section>
|
||
|
||
<section id="mixed">
|
||
<title>Hem isme hem de IP‘ye dayalı sanal konaklar</title>
|
||
|
||
<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 />
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/mesela<br />
|
||
ServerName mesela.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza<br />
|
||
ServerName faraza.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/falanca<br />
|
||
ServerName falanca.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
# IP-based<br />
|
||
<VirtualHost 172.20.30.50><br />
|
||
<indent>
|
||
DocumentRoot /siteler/filanca<br />
|
||
ServerName filanca.dom<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.60><br />
|
||
<indent>
|
||
DocumentRoot /siteler/fesmekan<br />
|
||
ServerName fesmekan.dom<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
</section>
|
||
|
||
<section id="proxy"><title><code>Virtualhost</code> ve
|
||
<code>mod_proxy</code>’nin birlikte kullanımı</title>
|
||
|
||
<p>Bu örnekte bir arabirimi dışarıya bakan bir makinede, başka bir
|
||
makinede çalışan bir sunucuya sanal konak olarak, bir vekil sunucu
|
||
çalıştırmak istediğimizi varsayıyoruz. <code>192.168.111.2</code> IP
|
||
adresli bir makinede aynı isimde bir sanal konak yapılandırılmış olsun.
|
||
Çok sayıda konak ismi için vekil olarak tek bir makine kullandığımızdan
|
||
ve konak isminin de aktarılmasını arzuladığımızdan <directive
|
||
module="mod_proxy">ProxyPreserveHost On</directive> yönergesini
|
||
kullandık.</p>
|
||
|
||
<example>
|
||
<VirtualHost *:*><br />
|
||
<indent>
|
||
ProxyPreserveHost On<br />
|
||
ProxyPass / http://192.168.111.2/<br />
|
||
ProxyPassReverse / http://192.168.111.2/<br />
|
||
ServerName konak.mesela.dom<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
</section>
|
||
|
||
<section id="default"><title><code>_default_</code> sanal konakları</title>
|
||
|
||
<section id="defaultallports">
|
||
<title>Tüm portlar için <code>_default_</code></title>
|
||
|
||
<p>Bir IP adresi ve port belirtilmeyen veya hiçbir sanal konağın hiçbir
|
||
adresi/portu ile eşleşmeyen istekleri yakalamak istersek...</p>
|
||
|
||
<example>
|
||
<title>Sunucu yapılandırması</title>
|
||
|
||
<VirtualHost _default_:*><br />
|
||
<indent>
|
||
DocumentRoot /siteler/default<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p>Bütün portlarla eşleşen böyle bir öntanımlı sanal konağın kullanımı
|
||
hiçbir isteğin ana sunucuya gitmemesi sonucunu doğurur.</p>
|
||
|
||
<p>Bir öntanımlı sanal konak, asla, isme dayalı sanal konaklar için
|
||
kullanılmış bir adrese/porta gönderilmiş bir isteğe hizmet sunmaz. Eğer
|
||
istek bilinmeyen bir <code>Host:</code> başlığına sahipse veya hiç
|
||
<code>Host:</code> başlığı içermiyorsa isteğe daima ilk (yapılandırma
|
||
dosyasındaki ilk) isme dayalı sanal konak hizmet sunar.</p>
|
||
|
||
<p>Her isteği tek bir bilgilendirme sayfasına (veya betiğe) yönlendirmek
|
||
isterseniz <directive module="mod_alias">AliasMatch</directive> veya
|
||
<directive module="mod_rewrite">RewriteRule</directive> yönergesini
|
||
kullanabilirsiniz.</p>
|
||
</section>
|
||
|
||
<section id="defaultdifferentports">
|
||
<title>Farklı portlardan <code>_default_</code></title>
|
||
|
||
<p>Önceki yapılandırmaya ek olarak 80. portta ayrı bir
|
||
<code>_default_</code> sanal konağı kullanmak istersek...</p>
|
||
|
||
<example>
|
||
<title>Sunucu yapılandırması</title>
|
||
|
||
<VirtualHost _default_:80><br />
|
||
<indent>
|
||
DocumentRoot /siteler/default80<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost _default_:*><br />
|
||
<indent>
|
||
DocumentRoot /siteler/default<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p>80. porttan hizmet sunan <code>_default_</code> sanal konağı IP adresi
|
||
belirtilmeyen tüm istekleri yakalar, bunu yapabilmesi için yapılandırma
|
||
dosyasında tüm portlara hizmet sunan benzerinden önce yer almalıdır. Bu
|
||
durumda ana sunucu hiçbir isteğe yanıt vermeyecektir.</p>
|
||
</section>
|
||
|
||
<section id="defaultoneport">
|
||
<title>Tek portluk <code>_default_</code></title>
|
||
|
||
<p><code>_default_</code> sanal konağının sadece 80. porttan hizmet
|
||
sunmasını istersek...</p>
|
||
|
||
<example>
|
||
<title>Sunucu yapılandırması</title>
|
||
|
||
<VirtualHost _default_:80><br />
|
||
DocumentRoot /siteler/default<br />
|
||
...<br />
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<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>
|
||
|
||
<p>Bir sanal konak bildiriminde <code>*</code> kullanımı
|
||
<code>_default_</code> kullanımından daha yüksek öncelik sağlar.</p>
|
||
</section>
|
||
|
||
</section>
|
||
|
||
<section id="migrate"><title>Bir isme dayalı sanal konağı bir IP’ye dayalı
|
||
sanal konakla yansılamak</title>
|
||
|
||
<p>İsme dayalı sanal konak örneklerinin <a href="#twoips">2. sinde</a> adı
|
||
geçen <code>falanca.dom</code> bu örnekte kendi IP adresinden hizmet
|
||
veriyor olsun. İsme dayalı sanal konağı eski IP adresiyle kaydetmiş
|
||
vekiller ve isim sunucularından kaynaklanacak olası sorunlardan kaçınmak
|
||
için yansılama sırasında sanal konağı hem eski hem de yeni IP adresiyle
|
||
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>
|
||
|
||
<example>
|
||
<title>Sunucu yapılandırması</title>
|
||
|
||
Listen 80<br />
|
||
ServerName mesela.dom<br />
|
||
DocumentRoot /siteler/mesela<br />
|
||
<br />
|
||
<VirtualHost 192.168.1.2><br />
|
||
<br />
|
||
<VirtualHost 192.168.1.2 192.168.2.2><br />
|
||
<indent>
|
||
DocumentRoot /siteler/falanca<br />
|
||
ServerName falanca.dom<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 192.168.1.2><br />
|
||
<indent>
|
||
DocumentRoot /siteler/faraza<br />
|
||
ServerName faraza.dom<br />
|
||
ServerAlias *.faraza.dom<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p>Böylece sanal konağa hem yeni (bir IP’ye dayalı sanal konak olarak)
|
||
hem de eski adresinden (bir isme dayalı sanal konak olarak)
|
||
erişilebilecektir.</p>
|
||
|
||
</section>
|
||
|
||
<section id="serverpath">
|
||
<title><code>ServerPath</code> yönergesinin kullanımı</title>
|
||
|
||
<p>İsme dayalı iki sanal konağı olan bir sunucumuz olsun. Doğru sanal
|
||
konağa erişebilmek için istemcinin doğru <code>Host:</code> başlığı
|
||
göndermesi gerekir. Eski HTTP/1.0 istemcileri böyle bir başlık
|
||
göndermedikleri için Apache istemcinin hangi sanal konağa erişmek
|
||
istediğini bilemez (ve isteğe ilk sanal konaktan hizmet sunar). Daha iyi
|
||
bir geriye uyumluluk sağlamak için isme dayalı sanal konağa bir önek
|
||
bağlantısı içeren bir bilgilendirme sayfası sunmak üzere yeni bir sanal
|
||
konak oluşturabiliriz.</p>
|
||
|
||
<example>
|
||
<title>Sunucu yapılandırması</title>
|
||
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
# ilk sanal konak<br />
|
||
DocumentRoot /siteler/baska<br />
|
||
RewriteEngine On<br />
|
||
RewriteRule . /siteler/baska/index.html<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40><br />
|
||
DocumentRoot /siteler/baska/bir<br />
|
||
<indent>
|
||
ServerName bir.baska.tld<br />
|
||
ServerPath /bir/<br />
|
||
RewriteEngine On<br />
|
||
RewriteRule ^(/bir/.*) /siteler/baska$1<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost><br />
|
||
<br />
|
||
<VirtualHost 172.20.30.40><br />
|
||
<indent>
|
||
DocumentRoot /siteler/baska/iki<br />
|
||
ServerName iki.baska.tld<br />
|
||
ServerPath /iki/<br />
|
||
RewriteEngine On<br />
|
||
RewriteRule ^(/iki/.*) /siteler/baska$1<br />
|
||
# ...<br />
|
||
</indent>
|
||
</VirtualHost>
|
||
</example>
|
||
|
||
<p><directive module="core">ServerPath</directive> yönergesinden dolayı
|
||
<code>http://bir.baska.tld/bir/</code> şeklinde yapılan isteklere
|
||
<em>daima</em> “bir” sanal konağı hizmet sunacaktır.</p>
|
||
|
||
<p><code>http://bir.baska.tld/</code> şeklinde yapılan isteklere ise
|
||
istemcinin doğru <code>Host:</code> başlığı göndermesi şartıyla
|
||
“bir” sanal konağı hizmet sunacaktır. İstemci, bir
|
||
<code>Host:</code> başlığı göndermediği takdirde ilk konaktan bir
|
||
bilgilendirme sayfası alacaktır.</p>
|
||
|
||
<p>Yalnız buradaki bir tuhaflığa dikkat edin: Eğer istemci bir
|
||
<code>Host:</code> başlığı göndermeden
|
||
<code>http://iki.baska.tld/bir/</code> şeklinde bir istek yaparsa bu
|
||
isteğe de “bir” sanal konağı hizmet sunacaktır.</p>
|
||
|
||
<p><directive module="mod_rewrite">RewriteRule</directive> yönergesi, bir
|
||
istemcinin, bir URL öneki belirtsin ya da belirtmesin doğru
|
||
<code>Host:</code> başlığı gönderdiğinden emin olmak için
|
||
kullanılmıştır.</p>
|
||
|
||
</section>
|
||
|
||
</manualpage>
|