Return-Path: Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: (qmail 37196 invoked from network); 16 Jun 2008 09:03:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Jun 2008 09:03:02 -0000 Received: (qmail 4510 invoked by uid 500); 16 Jun 2008 09:03:04 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 4444 invoked by uid 500); 16 Jun 2008 09:03:04 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 4435 invoked by uid 99); 16 Jun 2008 09:03:04 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jun 2008 02:03:04 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Jun 2008 09:02:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 152372388A6D; Mon, 16 Jun 2008 02:02:17 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r668082 [6/6] - in /httpd/httpd/trunk/docs/manual: ./ developer/ howto/ mod/ platform/ ssl/ vhosts/ Date: Mon, 16 Jun 2008 09:02:08 -0000 To: cvs@httpd.apache.org From: takashi@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080616090217.152372388A6D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: httpd/httpd/trunk/docs/manual/vhosts/mass.html.en URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/mass.html.en?rev=668082&r1=668081&r2=668082&view=diff ============================================================================== --- httpd/httpd/trunk/docs/manual/vhosts/mass.html.en (original) +++ httpd/httpd/trunk/docs/manual/vhosts/mass.html.en Mon Jun 16 02:02:04 2008 @@ -19,7 +19,8 @@ Apache > HTTP Server > Documentation > Version 2.3 > Virtual Hosts

Dynamically Configured Mass Virtual Hosting

Available Languages:  en  | - ko 

+ ko  | + tr 

@@ -421,7 +422,8 @@

Available Languages:  en  | - ko 

+ ko  | + tr 

Modified: httpd/httpd/trunk/docs/manual/vhosts/mass.html.ko.euc-kr URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/mass.html.ko.euc-kr?rev=668082&r1=668081&r2=668082&view=diff ============================================================================== --- httpd/httpd/trunk/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] (original) +++ httpd/httpd/trunk/docs/manual/vhosts/mass.html.ko.euc-kr [euc-kr] Mon Jun 16 02:02:04 2008 @@ -19,7 +19,8 @@ Apache > HTTP Server > Documentation > Version 2.3 > 가상호스트

대량의 가상호스트를 동적으로 설정하기

가능한 언어:  en  | - ko 

+ ko  | + tr 

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.
@@ -416,7 +417,8 @@

가능한 언어:  en  | - ko 

+ ko  | + tr 

Added: httpd/httpd/trunk/docs/manual/vhosts/mass.html.tr.utf8 URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/mass.html.tr.utf8?rev=668082&view=auto ============================================================================== --- httpd/httpd/trunk/docs/manual/vhosts/mass.html.tr.utf8 (added) +++ httpd/httpd/trunk/docs/manual/vhosts/mass.html.tr.utf8 [utf-8] Mon Jun 16 02:02:04 2008 @@ -0,0 +1,415 @@ + + + +Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma - Apache HTTP Sunucusu + + + + + +
<-
+

Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ + +

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. +

+ +
+ +
top
+
+

Amaç

+ +

Burada açıklanan teknikler, httpd.conf dosyanızın + örnekteki gibi, aslında hemen hemen birbirinin aynı çok sayıda + <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> +

+ +

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:

+ +
    +
  1. Yapılandırma dosyanız küçüleceği için Apache daha çabuk + başlatılabilecek ve daha az bellek harcayacaktır.
  2. + +
  3. Yeni sanal konakların eklenmesi, DNS’de yeni girdiler oluşturmak ve + dosya sisteminde bununla ilgili dizinleri açmak dışında biraz daha + basit olacaktır; en azından Apache’yi yeniden yapılandırmak ve yeniden + başlatmak zorunda kalmayacaksınız.
  4. +
+ +

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).

+ +
top
+
+

Genel Bakış

+ +

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 + ü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 + kullanılır. Çalışma anındaki asıl değer UseCanonicalName yönergesi tarafından denetlenir. + UseCanonicalName Off olduğunda sunucu ismi isteğin + Host: başlık alanından elde edilir. UseCanonicalName + 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ışı + 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 + 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.

+ +
top
+
+

Basit Devingen 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.

+ +

+# 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
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# istekleri yerine getirmek için kullanılacak
+# dosya isimlerine sunucu ismini ekleyelim
+VirtualDocumentRoot /siteler/%0/belgeler
+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.

+ +
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/
+

+ +

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

+ +
top
+
+

Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar

+ +

Daha karmaşık ayarlamalar yaparak Apache’inin 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 + başka bir IP adresiniz olsun. Her biri için ayrı ayrı sanal konaklar + ayarlamak yerine aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

+ +

+UseCanonicalName Off
+
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+
+<Directory /siteler/kurumsal>
+ + Options FollowSymLinks
+ AllowOverride All
+
+</Directory>
+
+<Directory /siteler/bireysel>
+ + Options FollowSymLinks
+ AllowOverride None
+
+</Directory>
+
+<VirtualHost 111.22.33.44>
+ + ServerName kurumsal.iss.dom
+
+ CustomLog logs/access_log.kurumsal vcommon
+
+ VirtualDocumentRoot /siteler/kurumsal/%0/belgeler
+ VirtualScriptAlias /siteler/kurumsal/%0/cgi-bin
+
+</VirtualHost>
+
+<VirtualHost 111.22.33.45>
+ + ServerName bireysel.iss.dom
+
+ CustomLog logs/access_log.bireysel vcommon
+
+ VirtualDocumentRoot /siteler/bireysel/%0/belgeler
+ ScriptAlias /cgi-bin/ /siteler/std-cgi/
+
+</VirtualHost> +

+ +

Bilginize

+

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) + 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 + belirtilmişti. Her istek için ayrı bir DNS sorgusu gerekeceğinden bu + başarım düşmesine yol açar. DNS sorgusu ihtiyacını ortadan kaldırmak + için, bir çözüm olarak dosya sistemi, konak isimleri yerine IP + adreslerine göre düzenlenebilir. Günlük kayıtları da IP adreslerine göre + ayrıştırılacak şekilde ayarlanabilir.

+ +

+# Sunucu ismini IP adresinden ters DNS sorgusu ile elde edelim
+UseCanonicalName DNS
+
+# Günlük kayıtları IP adreslerine göre ayrıştırılabilsin
+LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# dosya isimleri IP adreslerini içersin
+VirtualDocumentRootIP /siteler/%0/belgeler
+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] +

+ +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file Propchange: httpd/httpd/trunk/docs/manual/vhosts/mass.html.tr.utf8 ------------------------------------------------------------------------------ svn:eol-style = native Modified: httpd/httpd/trunk/docs/manual/vhosts/mass.xml.meta URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/mass.xml.meta?rev=668082&r1=668081&r2=668082&view=diff ============================================================================== --- httpd/httpd/trunk/docs/manual/vhosts/mass.xml.meta (original) +++ httpd/httpd/trunk/docs/manual/vhosts/mass.xml.meta Mon Jun 16 02:02:04 2008 @@ -9,5 +9,6 @@ en ko + tr Modified: httpd/httpd/trunk/docs/manual/vhosts/name-based.html.ja.utf8 URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/vhosts/name-based.html.ja.utf8?rev=668082&r1=668081&r2=668082&view=diff ============================================================================== --- httpd/httpd/trunk/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] (original) +++ httpd/httpd/trunk/docs/manual/vhosts/name-based.html.ja.utf8 [utf-8] Mon Jun 16 02:02:04 2008 @@ -19,15 +19,15 @@ Apache > HTTP サーバ > ドキュメンテーション > バージョン 2.3 > バーチャルホスト

名前ベースのバーチャルホスト

-

Available Languages:  de  | +

言語:  de  |  en  |  fr  |  ja  |  ko  |  tr 

-
This translation may be out of date. Check the - English version for recent changes.
+
この日本語訳はすでに古くなっている可能性があります。 + 更新された内容を見るには英語版をご覧下さい。

この文書では名前ベースのバーチャルホストをどんなとき、 どうやって使うかを説明します。

@@ -259,12 +259,12 @@

これには、幾分かの規律が必要となりますが、 このようなガイドラインを忠実に守ることにより、たいていの場合、 - すべてのブラウザで — 新しいブラウザでも古いものでも — + すべてのブラウザで ― 新しいブラウザでも古いものでも ― 作成したページが見えるということを保証します。

-

Available Languages:  de  | +

言語:  de  |  en  |  fr  |  ja  |