From: Nilgun Belma Buguner Date: Tue, 3 Apr 2012 11:44:22 +0000 (+0000) Subject: update transformations. X-Git-Tag: 2.4.2~21 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5cda9e90bfa99aaee4be1c34b6bdd4e532526cbb;p=apache update transformations. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1308828 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/vhosts/mass.html.tr.utf8 b/docs/manual/vhosts/mass.html.tr.utf8 index 1a664a24eb..fdec6c099f 100644 --- a/docs/manual/vhosts/mass.html.tr.utf8 +++ b/docs/manual/vhosts/mass.html.tr.utf8 @@ -23,23 +23,23 @@  ko  |  tr 

-
Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.

Bu belgede sanal konakların sonu belirsiz bir şekilde artışı karşısında - Apache httpd sunucusunun nasıl daha verimli kullanılacağı açıklanmıştır. + Apache HTTP Sunucusunun nasıl daha verimli kullanılacağı açıklanmıştır. + Devingen kitlesel konakları oluşturmak için mod_rewrite + modülünün kullanımını açıklayan ayrı bir + belge de mevcuttur.

top
@@ -50,40 +50,35 @@ <VirtualHost> bölümü içereceği zaman yapılacaklar ile ilgilidir.

-

-NameVirtualHost 111.22.33.44
-<VirtualHost 111.22.33.44>
- - ServerName musteri-1.dom
- DocumentRoot /siteler/musteri-1.dom/belgeler
- ScriptAlias /cgi-bin/ /siteler/musteri-1.dom/cgi-bin
-
-</VirtualHost>
-<VirtualHost 111.22.33.44>
- - ServerName musteri-2.dom
- DocumentRoot /siteler/musteri-2.dom/belgeler
- ScriptAlias /cgi-bin/ /siteler/musteri-2.dom/cgi-bin
-
-</VirtualHost>
-# blah blah blah
-<VirtualHost 111.22.33.44>
- - ServerName musteri-N.dom
- DocumentRoot /siteler/musteri-N.dom/belgeler
- ScriptAlias /cgi-bin/ /siteler/musteri-N.dom/cgi-bin
-
+

+<VirtualHost 111.22.33.44>
+    ServerName                 musteri-1.example.com
+    DocumentRoot        /siteler/musteri-1/belgeler
+    ScriptAlias  /cgi-bin/  /siteler/musteri-1/cgi-bin
 </VirtualHost>
-

-

Ana fikir, tüm durağan <VirtualHost> - yapılandırmalarını devingen olarak çalışan tek bir - <VirtualHost> bölümüyle değiştirmektir. Bunun elbette - bazı getirileri olacaktır:

+<VirtualHost 111.22.33.44> + ServerName musteri-2.example.com + DocumentRoot /siteler/musteri-2/belgeler + ScriptAlias /cgi-bin/ /siteler/musteri-2/cgi-bin +</VirtualHost> + +<VirtualHost 111.22.33.44> + ServerName musteri-N.example.com + DocumentRoot /siteler/musteri-N/belgeler + ScriptAlias /cgi-bin/ /siteler/musteri-N/cgi-bin +</VirtualHost> + + +

İsteğimiz çok sayıda <VirtualHost> bölümünü devingen + olarak çalışan tek bir <VirtualHost> bölümüyle + değiştirmektir. Bunun elbette bazı getirileri olacaktır:

  1. Yapılandırma dosyanız küçüleceği için Apache daha çabuk - başlatılabilecek ve daha az bellek harcayacaktır.
  2. + başlatılabilecek ve daha az bellek harcayacaktır. Muhtemelen daha da + önemlisi, küçülmüş bir yapılandırmanın bakımı da kolaylaşacağı için + hatalar da azalacaktır.
  3. Yeni sanal konakların eklenmesi, DNS’de yeni girdiler oluşturmak ve dosya sisteminde bununla ilgili dizinleri açmak dışında biraz daha @@ -92,11 +87,12 @@ NameVirtualHost 111.22.33.44

Ana götürüsü ise her sanal konak için ayrı birer günlük dosyasına sahip - olamayacak olmanızdır. Öte yandan, dosya tanıtıcılarının sınırlı olması - nedeniyle bunu yapmayı zaten istemezsiniz. Günlük kayıtları için bir - fifo veya bir boru hattı oluşturmak ve diğer uçta çalışan bir süreç - vasıtasıyla günlükleri müşterilere paylaştırmak daha iyidir (ayrıca, bu, - istatistikleri toplamanızı da kolaylaştırır).

+ olamayacak olmanızdır. Öte yandan, dosya + tanıtıcılarının sınırlı olması nedeniyle bunu yapmayı zaten + istemezsiniz. Günlük kayıtları için bir fifo + veya bir boru hattı oluşturmak ve diğer uçta çalışan bir süreç + vasıtasıyla günlükleri müşterilere paylaştırmak daha iyidir. Böyle bir + işlemle ilgili bir örneği split-logfile aracının belgesinde bulabilirsiniz.

top
@@ -105,16 +101,18 @@ NameVirtualHost 111.22.33.44

Bir sanal konak iki bilgiye bakarak belirlenir: IP adresi ve HTTP isteğindeki Host: başlığının içeriği. Devingen sanal barındırma tekniği, isteği yerine getirmek için kullanılacak dosya - yoluna bu bilgiyi kendiliğinden girmek esasına dayanır. Bu, Apache 2.0 - ile mod_vhost_alias kullanarak oldukça kolay - yapılabileceği gibi mod_rewrite da kullanılabilir. Bu - modüllerin her ikisi de öntanımlı olarak devre dışıdır. Bu tekniği - kullanmak isterseniz Apache’yi yeniden yapılandırıp derleyerek bu iki - modülü etkin duruma getirmeniz gerekir.

- -

Devingen sanal konağı normal bir sanal konak gibi göstermek için bazı - şeyleri ’göstermelik’ olarak yapmak gerekir. Bunlardan en önemlisi, - Apache tarafından göreli URL’lerden normal URL’leri ve benzerlerini + yoluna bu bilgiyi kendiliğinden girmek esasına dayanır. Bu, Apache httpd + ile mod_vhost_alias modülünü kullanarak oldukça kolay + yapılabileceği gibi mod_rewrite modülü + de kullanılabilir.

+ +

Bu modüllerin her ikisi de öntanımlı olarak devre dışıdır. Bu tekniği + kullanmak isterseniz Apache httpd'yi yeniden yapılandırıp derleyerek bu + iki modülü etkin duruma getirmeniz gerekir.

+ +

Devingen sanal konağı normal bir sanal konak gibi göstermek için + bazı bilgileri istekten saptamak gerekir. Bunlardan en önemlisi, + httpd tarafından göreli URL’lerden normal URL’leri ve benzerlerini üretmek için kullanılan sunucu ismidir. Sunucu ismi ServerName yönergesi ile yapılandırılır ve CGI’ler tarafından SERVER_NAME ortam değişkeni üzerinden @@ -124,37 +122,36 @@ NameVirtualHost 111.22.33.44
DNS belirtilmişse, sunucu ismi, sanal konağın IP adresinden tersine DNS sorgusu yapılarak elde edilir. Birincisi isme dayalı sanal konaklar tarafından ikincisi ise IP’ye dayalı sanal konaklar tarafından - kullanılır. Eğer Apache, istekte Host: başlığının olmayışı + kullanılır. Eğer httpd, istekte Host: başlığının olmayışı veya DNS sorgusunun başarısız olması sebebiyle sunucu ismini elde edemezse son çare olarak ServerName yönergesinde yazılı değeri kullanır.

-

‘Göstermelik’ yapılan şeylerden biri de DocumentRoot +

Saptanan bilgilerden biri de DocumentRoot yönergesi ile yapılandırılan belge kök dizini olup CGI’ler tarafından DOCUMENT_ROOT ortam değişkeni üzerinden kullanılır. Normal yapılandırmada core modülü tarafından dosya isimlerini URI’lere eşlerken kullanılır. Fakat sunucu devingen sanal konakları kullanmak üzere yapılandırıldığında, eşleştirmeyi farklı yollardan yapan - başka bir modül devreye girer (mod_vhost_alias veya - mod_rewrite). DOCUMENT_ROOT ortam değişkenine - değerini atamaktan sorumlu olan bu iki modülden biri kullanılmazsa CGI - veya SSI belgeleri yanlış değerlerle üretilirler.

+ başka bir modül devreye girer (mod_vhost_alias veya + mod_rewrite). DOCUMENT_ROOT ortam + değişkenine değerini atamaktan sorumlu olan bu iki modülden biri + kullanılmazsa CGI veya SSI belgeleri yanlış değerlerle üretilirler.

top
-

Basit Devingen Sanal Konaklar

+

mod_vhost_alias ile Kitlesel Sanal Konaklar

Yukarıda Amaç bölümünde özetlenen sanal konak - düzenlemesinin mod_vhost_alias kullanarak daha soysal bir - tarzda gerçekleştirilmiş halini içeren httpd.conf bölümü - aşağıdadır.

+ düzenlemesinin mod_vhost_alias kullanarak gerçekleştirilmiş + halini içeren httpd.conf bölümü aşağıdadır.

# sunucu ismini Host: başlığından elde edelim
UseCanonicalName Off

-# Bu günlükleme biçiminde ilk alana bakarak
-# sanal konak günlükleri ayrıştırılabilir
+# Bu günlükleme biçiminde split-logfile aracı kullanılarak
+# ilk alana dayalı sanal konak günlükleri ayrıştırılabilir
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon

@@ -167,27 +164,37 @@ VirtualScriptAlias /siteler/%0/cgi-bin

Bu yapılandırmayı IP’ye dayalı sanal konaklar için kullanmak isterseniz UseCanonicalName Off yerine UseCanonicalName DNS yazmanız yeterlidir. Böylece dosya ismine eklenecek konak - ismi sanal konağın IP adresinden türetilir.

+ ismi sanal konağın IP adresinden türetilir. %0 değişkeni, + Host: başlığı ile belirlenen istekteki sunucu isminin + ifadesidir.

+ +

Kullanım örnekleri için mod_vhost_aliasmodülünün + belgesine bakınız.

top
-

Sanal Kişisel Sayfalar Sistemi

- -

Bu sistem, yukarıdaki yapılandırmanın bir ISS’nin kişisel sayfalar - sunucusuna uyarlanmasından başka bir şey değildir. Biraz daha karmaşık - bir yapılandırma ile dosya isimlerine /home/kullanıcı/ - dizinlerini ekleyebiliriz. Farklı olarak her sanal konak için bir tane - değil hepsi için bir tane cgi-bin olacaktır.

- -

-# Son bölüm hariç yukarıdaki yapılandırma, burada...
-
-# sunucu ismine eklenecek dosya isimlerini oluşturalım
-VirtualDocumentRoot /siteler/%2/belgeler
-
-# ortak cgi-bin dizini
-ScriptAlias /cgi-bin/ /siteler/std-cgi/
-

+

Basitleştirilmiş Kitlesel Sanal Konaklar

+ +

Bu sistem, yukarıdaki yapılandırmanın bir ISS’nin sunucusuna + uyarlanmasından başka bir şey değildir. %2 değişkenini + kullanarak, dosya isminde kullanmak üzere sunucu isminin alt dizgelerini + seçebiliriz, böylece, örneğin www.user.example.com belgeleri + /home/user/www dizininde bulunabilir. Farklı olarak her + sanal konak için bir tane değil hepsi için bir tane cgi-bin + olacaktır.

+ +

+ UseCanonicalName Off
+
+ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+ CustomLog logs/access_log vcommon
+
+ # sunucu ismini içerecek dosya isimlerini oluşturalım
+ VirtualDocumentRoot /home/%2/www
+
+ # ortak cgi-bin dizini
+ ScriptAlias /cgi-bin/ /siteler/std-cgi/
+

mod_vhost_alias belgesinde daha karmaşık VirtualDocumentRoot örnekleri vardır.

@@ -196,7 +203,7 @@ ScriptAlias /cgi-bin/ /siteler/std-cgi/

Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar

-

Daha karmaşık ayarlamalar yaparak Apache’inin normal +

Daha karmaşık ayarlamalar yaparak httpd’nin normal <VirtualHost> bölümlerini farklı kitlesel sanal konak yapılandırmaları için kullanabilirsiniz. Örneğin, bireysel müşterileriniz için bir IP adresiniz, kurumsal müşterileriniz için de @@ -224,7 +231,7 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

<VirtualHost 111.22.33.44>
- ServerName kurumsal.iss.dom
+ ServerName kurumsal.example.com

CustomLog logs/access_log.kurumsal vcommon

@@ -235,7 +242,7 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

<VirtualHost 111.22.33.45>
- ServerName bireysel.iss.dom
+ ServerName bireysel.example.com

CustomLog logs/access_log.bireysel vcommon

@@ -249,13 +256,14 @@ LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

Eğer ilk <VirtualHost> bölümü bir ServerName yönergesi içermezse ilgili IP için ters DNS sorgusu yapılır. Eğer sorgudan elde edilen isim sunucunun ismi değilse bu istenmeyen duruma bir çözüm olarak bir - bilgilendirme bölümü (ServerName isimsiz.iss.dom) + bilgilendirme bölümü (örn, ServerName bilgi.example.com) eklenebilir.

top

IP’ye dayalı sanal konakları daha verimli kılmak

+

İlk örnekte IP’ye dayalı sanal konaklar için kullanılmak istenirse yapılandırmada neyin nasıl değiştirileceği @@ -280,131 +288,16 @@ VirtualScriptAliasIP /siteler/%0/cgi-bin

top
-

mod_rewrite ile Kurumsal Müşteriler Sistemi

- -

Buradaki httpd.conf bölümü de ilk - örnekteki gibi elde edilmiştir. İlk yarı, bazı değişiklikler dışında - yukarıdaki örneğe çok benzer. Bu değişiklikler yapılandırmanın - mod_rewrite bölümünün düzgün çalışması ve geriye doğru - uyumluluk için gereklidir. İkinci yarı, asıl işi yapan - mod_rewrite yapılandırmasını içerir.

- -

Biraz uzmanlık gerektiren bazı kısımlar var: Öntanımlı olarak - mod_rewrite diğer (mod_alias, vs. gibi) URI - dönüşüm modüllerinden önce çalışır. Dolayısıyla bu modülleri kullanmak - isterseniz, mod_rewrite’ı bunlara izin verecek şekilde - yapılandırmalısınız. Ayrıca her devingen sanal konağa eşdeğer bir - ScriptAlias yapmak için de biraz büyü yapmak gerekir.

- -

-# Sunucu ismini Host: başlığınıdan alalım.
-UseCanonicalName Off
-
-# Günlük dosyasından bilgileri ayıklayabilelim.
-LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
-CustomLog logs/access_log vcommon
-
-<Directory /siteler/hosts>
- - # ScriptAlias için yaptıklarımızla CGI betiklerini
- # çalışmaya zorlayamayacağımızdan ExecCGI burada gerekli.
- Options FollowSymLinks ExecCGI
-
-</Directory>
-
-# İşin zor yanına geldik.
-
-RewriteEngine On
-
-# Host: başlığından elde edilen sunucu isminde harf
-# büyüklükleri çeşitli olabilir. Hepsini küçük harf yapalım.
-RewriteMap lowercase int:tolower
-
-## önce normal belgelerle anlaşalım:
-# Alias /icons/ çalışsın - diğer rumuzlar için yineleyelim
-RewriteCond %{REQUEST_URI} !^/icons/
-# CGI’ler de çalışsın.
-RewriteCond %{REQUEST_URI} !^/cgi-bin/
-# Biraz da büyü yapalım.
-RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/belgeler/$1
-
-## Artık CGI’lerle anlaşabiliriz. - Bir eylemci isteyelim.
-RewriteCond %{REQUEST_URI} ^/cgi-bin/
-RewriteRule ^/(.*)$ /siteler/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [H=cgi-script]
-
-# Bu kadar! -

- -
top
-
-

mod_rewrite ile Kişisel Sayfalar Sistemi

- -

Burada da ikinci örnekte yaptıklarımızı - yapıyoruz.

- -

-RewriteEngine on
-
-RewriteMap lowercase int:tolower
-
-# CGI’ler çalışsın.
-RewriteCond %{REQUEST_URI} !^/cgi-bin/
-
-# konak ismi doğru mu bakalım yoksa RewriteRule çalışmaz.
-RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.dom$
-
-# URI’nin başına sanal konak ismini ekleyelim.
-# [C], bunu bitirdikten sonra, sonraki rewrite ile devam et demek.
-RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
-
-# Artık asıl dosya ismini oluşturabiliriz.
-RewriteRule ^www\.([a-z-]+)\.isp\.dom/(.*) /home/$1/$2
-
-# Ortak CGI dizinini tanımlayalım.
-ScriptAlias /cgi-bin/ /siteler/std-cgi/ -

- -
top
-
-

Sanal konaklar için ayrı bir yapılandırma dosyası kullanmak

- -

Burada, sanal konak isimlerinden belge kök dizini elde ederken - mod_rewrite modülünün daha gelişkin özelliklerinden - yararlanarak isimleri ayrı bir dosyadan okutacağız. Bu, esnekliği - artırır ama daha karmaşık bir yapılandırma gerekir.

- -

Aşağıdaki içeriğe sahip bir vhost.mapdosyamız olsun:

- -

-musteri-1.dom /siteler/kurumsal/1
-musteri-2.dom /siteler/kurumsal/2
-# ...
-musteri-N.dom /siteler/kurumsal/N
-

- -

httpd.conf dosyamız da şunları içerecektir:

- -

-RewriteEngine on
-
-RewriteMap lowercase int:tolower
-
-# Eşlem dosyasını tanımlayalım
-RewriteMap vhost txt:/siteler/conf/vhost.map
-
-# Rumuzları yukarıdaki gibi halledelim.
-RewriteCond %{REQUEST_URI} !^/icons/
-RewriteCond %{REQUEST_URI} !^/cgi-bin/
-RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
-# Eşlemeyi dosyalar için de yapalım.
-RewriteCond ${vhost:%1} ^(/.*)$
-RewriteRule ^/(.*)$ %1/belgeler/$1
-
-RewriteCond %{REQUEST_URI} ^/cgi-bin/
-RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
-RewriteCond ${vhost:%1} ^(/.*)$
-RewriteRule ^/(.*)$ %1/cgi-bin/$1 [H=cgi-script] -

+

mod_rewrite ile Kitlesel Sanal Konaklar

+ + +

Kitlesel sanal barındırma mod_rewrite modülü kullanarak + da gerçeklenebilir. Ya basitçe RewriteRule yönergelerini kullanırsınız ya da daha karmaşık + olarak sanal konak tanımlarınızı harici bir yerde tutar ve bunlara + RewriteMap yönergesini + kullanarak erişirsiniz. Bu teknikler ayrıntılı olarak + rewrite belgelerinde + açıklanmıştır.

diff --git a/docs/manual/vhosts/mass.xml.meta b/docs/manual/vhosts/mass.xml.meta index 846b02d78a..9a4b57f4d0 100644 --- a/docs/manual/vhosts/mass.xml.meta +++ b/docs/manual/vhosts/mass.xml.meta @@ -10,6 +10,6 @@ en fr ko - tr + tr diff --git a/docs/manual/vhosts/name-based.html.tr.utf8 b/docs/manual/vhosts/name-based.html.tr.utf8 index 8b24e9bc7d..0beac65b29 100644 --- a/docs/manual/vhosts/name-based.html.tr.utf8 +++ b/docs/manual/vhosts/name-based.html.tr.utf8 @@ -25,124 +25,126 @@  ko  |  tr 

-
Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.

Bu belgede isme dayalı sanal konakların ne zaman, nasıl kullanılacakları açıklanmıştır.

+örnekleri
top

İsme dayalı ve IP’ye dayalı Sanal Konaklar

-

IP’ye dayalı sanal konaklarda sunulacak sanal konağı doğru tespit - edebilmek için bağlantının yapıldığı IP adresine bakılır. Bu bakımdan her - konak için ayrı bir IP adresine gereksinim vardır. İsme dayalı sanal - konaklarda ise sunucu, istemcinin HTTP başlığının bir parçası olarak - gönderdiği konak adını kullanır. Bu teknikte aynı IP adresini çok sayıda - farklı konak kullanabilir.

+

IP’ye dayalı sanal konaklarda sunulacak + sanal konağı doğru tespit edebilmek için bağlantının yapıldığı IP + adresine bakılır. Bu bakımdan her konak için ayrı bir IP adresine + gereksinim vardır.

+ +

İsme dayalı sanal konaklarda ise sunucu, istemcinin HTTP başlığının bir + parçası olarak gönderdiği konak adını kullanır. Bu teknikte aynı IP + adresini çok sayıda farklı konak kullanabilir.

İsme dayalı sanal barındırma nispeten daha kolaydır, çünkü her konak ismini doğru IP adresiyle eşlemek için DNS sunucunuzu yapılandırdıktan sonra Apache HTTP sunucusunu farklı konak isimlerini tanıyacak şekilde yapılandırmanız yeterli olur. İsme dayalı sanal barındırma ayrıca zaten kıt olan IP adreslerine talebi de azaltır. Bu nedenle, IP’ye dayalı sanal - konakları kullanmanızı gerektirecek çok özel bir sebep olmadıkça isme - dayalı sanal konaklar kullanmalısınız. IP’ye dayalı sanal konakların - kullanımını gerektirebilecek bazı durumlar:

- -
    -
  • Bazı tarihi istemciler isme dayalı sanal konaklarla uyumlu değildir. - Ä°sme dayalı sanal konakların çalışması için istemcinin HTTP Host - başlığı göndermesi gerekir. Bu da HTTP/1.1 desteği gerektirir. - Günümüzdeki HTTP/1.0 istemcileri bir eklenti olarak HTTP/1.1’i de - desteklemektedir. Tarihi eser haline gelmiş HTTP/1.1 desteği - bulurmayan eski istemcileri hala isme dayalı sanal konaklarla - desteklemek isterseniz bu belgenin sonunda bunu mümkün kılabilecek bir - tekniğe yer verilmiştir.
  • + konakları kullanmanızı gerektiren donanım kullanmadıkça isme dayalı + sanal konaklar kullanmalısınız. Ä°stemci uyumuna bağlı IP’ye dayalı + sanal barındırma için eskiden varolan sebepler genel amaçlı bir HTTP + sunucusu için artık uygulanabilir değildir.

    -
  • Ä°sme dayalı sanal konaklar SSL portokolünün doğası gereğince SSL’li - güvenli sunucular için kullanılamazlar.
  • - -
  • Bazı işletim sistemlerinin ve ağ donanımlarının gerçekleştirdiği - band genişliği yönetim teknikleri IP adresleri farklı olmadığı sürece - konaklar arasında ayrım yapamazlar.
  • -
+

İsme dayalı sanal barındırma, IP'ye dayalı sanal barındırma seçim + algoritmasını kullanmaz, yani uygun sunucu ismini arama işlemi sadece en + iyi IP'ye dayalı adrese sahip sanal konaklar arasında gerçekleşir.

+
top
+
+

Sunucu isme dayalı sanal konaklardan uygun olanını nasıl seçer

+ + +

İsme dayalı sanal konak çözümlemesinin ilk adımının IP'ye dayalı + çözümleme olduğunun anlaşılması çok önemlidir. İsme dayalı sanal konak + çözümlemesi en uygun isme dayalı sanal konağı seçerken önce en iyi IP'ye + dayalı eşleşme adaylarının sayısını azaltır, sonra bunlar arasından en + uygununu seçer. Tüm VirtualHost yönergelerinde IP adresi + yerine joker kullanımı bu IP'ye dayalı eşlemeyi yersiz kılar.

+ +

Bir istek geldiğinde, sunucu, istekte kullanılan IP adresi ve portu ile + en iyi eşleşen <VirtualHost> bileşenini bulur. Bu IP adresi ve port çifti ile + eşleşen birden fazla sanal konak varsa, Apache httpd istekte kullanılan + sunucu ismini ServerName ve + ServerAlias yönergelerindeki + isimlerle karşılaştırır.

+ +

Bir IP adresi ve port çifti için öntanımlı isme dayalı sankon

+ +

ServerName ve + ServerAlias yönergelerinde bir + eşleşme bulunamazsa, Apache httpd bu çift ile eşleşen sanal + konaklar listesindeki ilk sanal konağı kullanır.

+
top

İsme Dayalı Sanal Konakların Kullanımı

- - -

İsme dayalı sanal konakları kullanmak için, bu konaklar için istekleri - kabul edecek sunucuya IP adresini (ve muhtemelen portu da) - belirtmelisiniz. Bu işlem NameVirtualHost yönergesiyle yapılır. Normal - şartlar altında sunucu üzerinde bütün IP adreslerinin kullanılması - gerekir; bunun için NameVirtualHost - yönergesine argüman olarak * belirtebilirsiniz. Çok sayıda - port kullanmayı planlıyorsanız (SSL çalıştırmak gibi), argümana - *:80 şeklinde port ekleyebilirsiniz. Yalnız, NameVirtualHost yönergesinde bir IP adresi - belirtmiş olmakla sunucunun kendiliğinden o IP adresini dinlemeyeceğine - dikkat ediniz. Bu konuda ayrıntılı bilgi edinmek için Apache’nin kullanacağı adreslerin ve portların - ayarlanması belgesine bakınız. Ayrıca, sunucuda, burada belirttiğiniz - IP adresine sahip bir ağ arabirimi olmalıdır.

+ -

Sonraki adım sunacağınız her konak için ayrı bir <VirtualHost> bölümü oluşturmaktır. - <VirtualHost> - yönergesinin argümanı ile eşleşen bir NameVirtualHost yönergesi tanımlanmış olmalıdır - (değer normalde "*:80" olacaktır). Her <VirtualHost> bölümü içinde sunulan konağı - belirtmek üzere en azından bir adet ServerName yönergesine ve konak içeriğinin dosya - sisteminde bulunduğu yeri gösteren bir DocumentRoot yönergesine - ihtiyacınız olacaktır.

+

İlk adım sunacağınız her konak için ayrı bir <VirtualHost> bölümü oluşturmaktır. Her + <VirtualHost> bölümü + içinde sunulan konağı belirtmek üzere en azından bir adet ServerName yönergesine ve konak içeriğinin + dosya sisteminde bulunduğu yeri gösteren bir DocumentRoot yönergesine ihtiyacınız + olacaktır.

Ana konağı unutmayın

-

Mevcut sitenize sanal konaklar eklerseniz, mevcut siteniz için de bir - <VirtualHost> bölümü - oluşturmalısınız. Bu sanal konak bölümü içinde kullanacağınız - ServerName ve DocumentRoot yönergelerinin argümanları, bu - yönergelerin sunucu geneli için belirttiğiniz değerlerini - içermelidir. Bu sanal konağı yapılandırma dosyanızdaki ilk sanal konak - yapın ki, öntanımlı konak olsun.

+

Any request that doesn't match an existing Mevcut <VirtualHost> yönergelerinin + hiçbiriyle eşleşmeyen bir istekiçin, sunucu veya konak ismine + bakılmaksızın genel sunucu yapılandırmanız kullanılır.

+ +

Mevcut sitenize isme dayalı bir sanal konak eklerseniz ve bu sanal + konak ana sunucunun IP adresi ve portuna sahipse, ana sunucuya yapılan + istekler için bu sanal konak kullanılır. Bu bakımdan, ServerName yönergesi ana sunucununki ile aynı + olan bir öntanımlı sanal konak oluşturmak + akıllıca olacaktır. Aynı arayüz ve portu kullanan fakat farklı + yapılandırmalara sahip diğer alan isimlerinin sanal konakları (yani + öntanımlı olmayanlar) bu öntanımlı sanal konağın sonrasına + yerleştirilmelidir.

-

Örnek olarak, www.biralan.tld adresinden sitenizi sunmakta - olduğunuzu ve bunun yanına aynı IP adresini kullanan - www.digeralan.tld sanal konağını eklemek istediğinizi +

Örnek olarak, site1.example.com adresinden sitenizi + sunmakta olduğunuzu ve bunun yanına aynı IP adresini kullanan + site2.example.com sanal konağını eklemek istediğinizi varsayalım. Bunun için httpd.conf dosyanıza basitçe şu satırları ekleyebilirsiniz:

- NameVirtualHost *:80
-
<VirtualHost *:80>
- ServerName www.biralan.tld
- ServerAlias biralan.tld *.biralan.tld
- DocumentRoot /siteler/biralan
+ #İlk sanal konak aynı zamanda *:80 için de öntanımlıdır. + ServerName site1.example.com
+ ServerAlias example.com
+ DocumentRoot /siteler/site1
</VirtualHost>

<VirtualHost *:80>
- ServerName www.digeralan.tld
- DocumentRoot /siteler/digeralan
+ + ServerName site2.example.com
+ DocumentRoot /siteler/site2
</VirtualHost>

-

İsterseniz, NameVirtualHost ve - <VirtualHost> - yönergelerinde argüman olarak * yerine doğrudan bir IP adresi - belirtebilirsiniz. Hatta, daha sonra, isme dayalı sanal konakları bir IP - adresinden ve IP’ye dayalı olanları veya isme dayalı diğer bir sanal konak - grubunu diğer IP adreslerinden sunmak isteyebilirsiniz.

+

İsterseniz,<VirtualHost> yönergesinde argüman olarak * + yerine doğrudan bir IP adresi belirtebilirsiniz. Hatta, daha sonra, isme + dayalı sanal konakları bir IP adresinden ve IP’ye dayalı olanları veya + isme dayalı diğer bir sanal konak grubunu diğer IP adreslerinden sunmak + isteyebilirsiniz.

Çoğu sunucunun birden fazla isim ile erişilebilir olması istenir. Bu, <VirtualHost> bölümü @@ -152,19 +154,24 @@ Barındırma

  • Çok kullanılan sanal konak ya için bölüm içine şu satırı ekleyebilirsiniz:

    - ServerAlias biralan.tld *.biralan.tld + ServerAlias example.com *.example.com

    Böylece biralan.tld alanındaki tüm konaklar için gelen isteklere www.biralan.tld sanal konağından hizmet sunulmuş olur. Konak isimleriyle eşleşmek üzere dosya ismi kalıp karakterleri - * ve ? kullanılabilir. Şüphesiz bu isimleri sırf - ServerName veya + * ve ? kullanılabilir. Şüphesiz bu isimleri + sırf ServerName veya ServerAlias yönergesinde belirtmiş olmakla bu isimleri erişilebilir kılamazsınız. Öncelikle, bu isimleri sunucunuzdaki IP adresleriyle eşlemek üzere yapılandıracağınız bir DNS sunucunuz olmalıdır.

    +

    İsme dayalı sanal konaklardan en iyi eşleşme kümesinde olanlar + yapılandırmada göründükleri sıraya göre işleme sokulur. Joker + kullanımları arasında fark gözetilmeksizin ServerName veya ServerAlias yönergesi eşleşen ilk sanal konak + kullanılır.

    +

    Son olarak, sanal konak yapılandırmanıza, <VirtualHost> bölümlerinin içine başka yönergeler yerleştirerek ince ayar çekebilirsiniz. Çoğu yönerge bu bölümlere yerleştirilebilir ve sadece o sanal konakla ilgili yapılandırmayı @@ -174,75 +181,6 @@ Barındırma

  • Çok kullanılan sanal konak ya yapılandırma yönergelerinden sadece sanal konak bölümlerinde geçersiz kılınmamış olanlar kullanılacaktır.

    -

    Sunucuya bir istek geldiğinde, sunucu önce IP adresiyle eşleşmesi olası - NameVirtualHost bölümleri var mı diye - bakar. Varsa, IP adresini eşleştirmek için NameVirtualHost bölümlerine tek tek bakar ve - istenen konak ismi ile eşleşen bir ServerName veya ServerAlias yönergesi bulmaya - çalışır. Bir tane bulduğunda, sunucu için onun yapılandırmasını kullanır. - İsimle eşleşen bir sanal konak bulamazsa IP adresiyle eşleşen ilk - sanal konağın yapılandırmasını kullanır.

    - -

    Bir önkabul olarak yapılandırma dosyasında rastlanan ilk sanal konak - öntanımlı sanal konaktır. IP adresi bir sanal konakla eşleştiği - takdirde ana sunucunun DocumentRoot değeri asla kullanılmayacaktır. - Sanal konaklardan hiçbiriyle eşleşmeyen istekler için özel bir - yapılandırmanız olsun isterseniz, bu yapılandırmayı yapılandırma - dosyanızdaki ilk <VirtualHost> bölümüne yerleştirmeniz - yetecektir.

    - -
  • top
    -
    -

    Artık Tarihe Karışmış Tarayıcılarla Uyumluluk

    - -

    Evvelce de bahsedildiği gibi, isme dayalı sanal konakların gerektiği gibi - çalışması için gerekli veriyi göndermeyen bazı istemciler vardır. Bu - istemcilere daima o IP adresinin yapılandırma dosyasındaki ilk sanal - konağının (isme dayalı başat sanal konak) sayfaları - gönderilir.

    - -

    Ne kadar eski?

    -

    Lütfen dikkat edin, eski deyince gerçekten de antika demek istiyoruz. - Günümüzde bu tür tarayıcılara rastlamanız neredeyse imkansızdır. Günümüz - tarayıcılarının hepsi isme dayalı sanal konakların gerektirdiği - Host başlığını gönderirler.

    -
    - -

    Olayı fazla germeden ServerPath - yönergesini kullanarak sorunun çevresinden dolanmak mümkündür:

    - -

    Örnek yapılandırma:

    - -

    - NameVirtualHost 111.22.33.44
    -
    - <VirtualHost 111.22.33.44>
    - - ServerName www.biralan.tld
    - ServerPath /biralan
    - DocumentRoot /siteler/biralan
    -
    - </VirtualHost>
    -

    - -

    Bu ne anlama geliyor? Anlamı, "/biralan" ile başlayan her - URI isteği www.biralan.tld sanal konağı tarafından sunulacak, - demektir. Yani, tüm istemcilerin - http://www.biralan.tld/biralan/ olarak eriştiği yere - Host: başlığı gönderen istemciler - http://www.biralan.tld/ olarak erişirler.

    - -

    Bunu gerçekleştirebilmek için başat sanal konağın baş sayfasına - http://www.biralan.tld/biralan/ için bir bağ koyduktan sonra - sanal konağın sayfalarında ya tamamen göreli bağlar - ("dosya.html", "../simgeler/resim.png" gibi) - veya /biralan/ ile öncelenmiş bağlar - ("http://www.biralan.tld/biralan/muht/dosya.html" veya - "/biralan/muht/dosya.html" gibi) kullanın.

    - -

    Bu işlem biraz disiplin gerektirse de bu yazılanlara sıkı sıkıya bağlı - kalarak hem eski hem de yeni tarayıcıların sayfalarınızı doğru - görüntülemesini sağlamış olursunuz.

    -

    Mevcut Diller:  de  | diff --git a/docs/manual/vhosts/name-based.xml.meta b/docs/manual/vhosts/name-based.xml.meta index c87cdc59f2..02dd49e4b0 100644 --- a/docs/manual/vhosts/name-based.xml.meta +++ b/docs/manual/vhosts/name-based.xml.meta @@ -12,6 +12,6 @@ fr ja ko - tr + tr