Apache HTTP Server Version 2.4
ƢÉÇÑ î: tr
ÀÌ Â ÄÄ 1.3 ëÀÇ Ƣ»óÈ£碬¦ ÈÀÀûÀÎ ñÇÏ ýÀ» íÇÑÙ.
mod_rewrite
¦ »çëÇÑ £ÜÇÑ µÀû Ƣ»óÈ£mod_rewrite
¦ »çëÇÑ ÈäÀÌÁö ÃÅÛçÅÀÇ apache2.conf
ÙÀú ơÀÌ Î ñÁÇÑ <VirtualHost>
ǵéÀ» ÀÌ ÀÖÙé ©â íÇÏ ýÀÌ µµòÀÌ µÉ ÍÀÌÙ:
NameVirtualHost 111.22.33.44
<VirtualHost 111.22.33.44>
ServerName www.customer-1.com
DocumentRoot /www/hosts/www.customer-1.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin
</VirtualHost>
<VirtualHost 111.22.33.44>
ServerName www.customer-2.com
DocumentRoot /www/hosts/www.customer-2.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin
</VirtualHost>
# Ù Ù Ù
<VirtualHost 111.22.33.44>
ServerName www.customer-N.com
DocumentRoot /www/hosts/www.customer-N.com/docs
ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin
</VirtualHost>
â» ƩäÀ ÁÀûÀÎ <VirtualHost>
Á µÎ¦ µÀûÀÎ ÃÇϵµÏ ëÃÇÏ ÍÀÌÙ. ¯é À ÀåÁÀÌ ÀÖÙ:
ÜÁÀ ¢ Ƣ»óÈ£稬ơÎ Ù¥ ÎÄÀÏÀ» »çëÇÒ ö Ù ÁÀÌÙ. ¯ Åì À Ƣ»óÈ£碬¦ »çëÇÑÙé ÄÀÏâúÀÚ¦ Ù áö硾âҡש碯 Î Ù¥ ÎÄÀÏÀ» »çëÇÒ ö Ù. ÄÀÌÇÁ fifoΠΦ »í,  í Φ ÃÇÏ© ©Â ýÀÌ (Åëè µîÀ» À» öµµ ÀÖÙ) õ Ù.
Ƣ»óÈ£碥 IP ÁÖÒÍ HTTP äûÀÇ Host:
Çìõ ÁÎ ÁÀÇÇÑÙ. â»ÀûÀÎ ëÀÇ µÀû Ƣ»óÈ£ âúÀ ÀÚµÀÎ Ƣ»óÈ£ Á¦ äûÀÇ ÄÀÏƩÎ ÇÔÇÑÙ. ÀÌ ëÎ mod_rewrite
¦ »çëÇ ÇÑÙ. ÀÌ µÎ µâ µÎ â»ÀûÀÎ ö ÇÔµÇÁö ÊÂÙ. ÀÌ ýÀ» »çëÇÏÁé ÄĦ ÇÏí ÄÄÄÀÏÇÒҡ ÇÔÇ ÇÑÙ.
µÀû Ƣ»óÈ£碬¦ ÀÏÝÀûÀÎ Ƣ»óȣà ÀÌÔÇÏÁé ©¯ƢÁö¦ `Ó©' ÇÑÙ. ƢÀå ÁäÇÑ ÍÀ ÄÄƢ ÀÚâÂüÁ URL µîÀ» µéҡ »çëÇÒ öíÀÌÙ. öíÀ ServerName
ÁöÃîÎ ÁÇÏç, CGI SERVER_NAME
ȯƩ¯öÎ ÁÖîÁÙ. ÇÇàÁ ÇÁ¦ öíÀ UseCanonicalName
Á ÈÙ. UseCanonicalName Off
ÀÌé äûÀÇ Host:
Çìõ »ëÀÌ öíÀÌ µÈÙ. UseCanonicalName DNS
ÀÌé Ƣ»óÈ£ÀÇ IP ÁÖÒ¦ DNS Ë»öÇÏ© öíÀ» ËÙ. ÀüÀÚ ÀÌסâÝ µÀû Ƣ»óÈ£碯 »çëÇÏí, ÈÄÀÚ IPâÝ Ƣ»óÈ£碯 »çëÇÑÙ. Host:
ÇìõƢ Å DNS Ë»öÀÌ ÇÇÏ© ÄÄƢ öíÀ» Ë»Áö ÇÏé ServerName
ÀÎ ÁÇÑ ƨÀ» ëÅ »çëÇÑÙ.
Ù¥ `ÓÀÏ' ÍÀ (DocumentRoot
Î ÁÇÏç, CGIÂ DOCUMENT_ROOT
ȯƩ¯öÎ ÁÖîÁöÂ) çÀÌÙ. ÀÏÝÀûÀÎ Ʃì core µâÀÌ ÀÌ ÁÀ» »çëÇÏ© URI ÇçÇÏ ÄÀÏíÀ» ãÁö, ö¦ µÀû Ƣ»óÈ£ÃÀ» ÇÒҡע ٥ µâÀÌ (mod_vhost_alias
mod_rewrite
) Ù¥ ýÀÎ ÀÌ ÀÛÀ» ÇÑÙ. µÎ µâ µÎ DOCUMENT_ROOT
ȯƩ¯ö¦ »çëÇÏÁö ÊÀÇÎ CGI SSI Ƣ ÀÌ ƨÀ» »çëÇÑÙé ÀµÈ áú¦ òÀ» ö ÀÖÙ.
À µâ ÀýÀÇ Ƣ»óÈ£ ÁÀ» mod_vhost_alias
¦ »çëÇÏ© õ ÀÏÝÀûÀÎ ÇöÇÙ.
# Host: Çìõ öíÀ» ËÙ
UseCanonicalName Off
# àÇÊµå¦ »çëÇÏ© ÀÌ Î¦ Ƣ»óÈ£稬ơÎ ö ÀÖÙ
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# äûÀ» ÃÇÏâÀÇ ÄÀÏí öíÀ» ÇÔÇÑÙ
VirtualDocumentRoot /www/hosts/%0/docs
VirtualScriptAlias /www/hosts/%0/cgi-bin
ÀÌ Á UseCanonicalName Off
¦ UseCanonicalName DNS
Î ¯ƩÇÏâ ÇÏé IPâÝ Ƣ»óÈ£Ƣ µÈÙ. Ƣ»óÈ£ÀÇ IP ÁÖÒ¦ ƢÁöí ÄÀÏí ÃƢÇÒ öíÀ» Ë ö ÀÖÙ.
ISP ÈäÀÌÁö ö¦ ÀÇ ÀÀÇ ÁÀ» öÁÇÙ. ÁҡÝ õ ÀâÇÑ ÁÀ» »çëÇÏé www..isp.com
ÀÇ ¦ /home//
µÎ ÄÀÎ öíÀÇ ÀÏΦ ƢÁöí ÄÀÏíÀ» µé ö ÀÖÙ. ÀÌ ÁÀ cgi-bin
À» ¢ Ƣ»óÈ£Ƣ µûÎ ƢÁöÁöÊí µç Ƣ»óÈ£Ƣ ơÀÌ »çëÇÑÙ.
# â»ÀûÀÎ »ëÀ ÀעÍ ơƢÙ. í
# ÄÀÏí öíÀÇ ÀÏΦ ÇÔÇÑÙ
VirtualDocumentRoot /www/hosts/%2/docs
# ÇÏÀÇ cgi-bin µÅä
ScriptAlias /cgi-bin/ /www/std-cgi/
mod_vhost_alias
 õ ÀâÇÑ VirtualDocumentRoot
ÁÀÇ Ƣ ÀÖÙ.
õ ÀâÇÑ ÁÀÇ Î ÄÄÀÇ ÀÏÝÀûÀÎ <VirtualHost>
ÁöÃî¦ »çëÇÏ© ©¯ Ƣ»óÈ£ ÁÀÇ üÀע¦ ÁÀýÇÒ ö ÀÖÙ. ¦ µéî, ÙÀú ơÀ ÁÀ ÈäÀÌÁö íƢ IP ÁÖÒ ÇÑƩ, »óÀûÀÎ íƢÔ Ù¥ IP ÁÖÒ ÇÑƩ¦ ΩÇÑÙ. ơ ÀÌÀüà <VirtualHost>
Á Ç µÎ À» öµµ ÀÖÙ.
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
<Directory /www/commercial>
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /www/homepages>
Options FollowSymLinks
AllowOverride None
</Directory>
<VirtualHost 111.22.33.44>
ServerName www.commercial.isp.com
CustomLog logs/access_log.commercial vcommon
VirtualDocumentRoot /www/commercial/%0/docs
VirtualScriptAlias /www/commercial/%0/cgi-bin
</VirtualHost>
<VirtualHost 111.22.33.45>
ServerName www.homepages.isp.com
CustomLog logs/access_log.homepages vcommon
VirtualDocumentRoot /www/homepages/%0/docs
ScriptAlias /cgi-bin/ /www/std-cgi/
</VirtualHost>
à ÁÀ» £ÜÈ IPâÝ Ƣ»óÈ£硤Î ÙÜ ö ÀÖÙí »ÇÙ. ÒÇàȵµ ÁÀ Å äûҢÙ DNS¦ ãÇÏÇÎ Åì ñÈÀÀûÀÌÙ. ÀÌעëÅ IP ÁÖÒÎ ÄÀÏÃÅÛÀ» ÇÏí ơÀ ÄÀΠΦ öÁÇÏé Á¦¦ ÇáÇÒ ö ÀÖÙ. ÄÄ öíÀ» Ùê ÇÊäƢ îÁöí, DNS Ë»öµµ ÇÏÁö ÊÔ µÈÙ.
# IP ÁÖÒ¦ DNS Ë»öÇÏ© öíÀ» ËÙ
UseCanonicalName DNS
# Φ ö ÀÖµµÏ IP ÁÖÒ¦ ÇÔÇÑÙ
LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# ÄÀÏí IP ÁÖÒ¦ ÇÔÇÑÙ
VirtualDocumentRootIP /www/hosts/%0/docs
VirtualScriptAliasIP /www/hosts/%0/cgi-bin
À µéÀ ÄÄ öÀü 1.3.6 ÀÌÈÄ ÇÔµÈ mod_vhost_alias
À» »çëÇÑÙ. mod_vhost_alias
Ƣ  ÄÄ öÀüÀ» »çëÇÑÙé ÀÌÌ »ÇµíÀÌ mod_rewrite
¦ »çëÇÏ©, Ü Host:-ÇìõâÝ Ƣ»óÈ£碬À», ÇöÇÒ ö ÀÖÙ.
Ç Î üÇÏ© ÁÖÀÇÇÒ ÁÀÌ ÀÖÙ. ÄÄ 1.3.6 ÎÇüÄ ÁöÃî %V
Ƣ ÇÔµÇúí, öÀü 1.3.0 - 1.3.3 ÀÌ âÉÀ» %v
ÉÇÀÌ ëÅ ÇÙ. ¯ öÀü 1.3.4 ÀÌ âÉÀÌ Ù. îҩ ÄÄ öÀüµµ .htaccess
ÄÀÏ UseCanonicalName
ÁöÃî¦ »çëÇÒ ö ÀÖÀÇÎ Î ÀÌ»óÇÑ »ëÀÌ â쵃 ö ÀÖÙ. ¯ÇÎ ƢÀå ÁÁÀ ýÀ %{Host}i
ÁöÃî¦ »çëÇÏ© Host:
Çìõ¦ ÁÁ¢ Î â ÍÀÌÙ. Ç, ÀÌ ýÀ %V
 ÇÔÇÏÁöÊ :port
¦ µÚ ÃƢÇÒ ö ÀÖÙ.
ÙÀÀ ÃÂ Í ơÀ ÀÏÀ» ÇÏÂ apache2.conf
ÀÌÙ. ÃÀ ÀýÝÀ ÃÂ Í ÅÀÇ ñÁÇÏÁö, ÀÌÀü öÀüúÀÇ È£È¯ú mod_rewrite
ÀÇ ÀûÀýÇÑ µÀÛÀ» ÀÇ öÁµÇúÙ. ÓÁö ÀýÝÀ ÇÁ¦ ÀÛÀ» ÇÏ mod_rewrite
¦ ÁÇÑÙ.
¯È ÁÖÀÇÇ ÇÒ »çÇÀÌ ÀÖÙ. â»ÀûÀÎ mod_rewrite
 (mod_alias
µî) Ù¥ URI µâ ÀÌÀü ÇÇàµÈÙ. Ù¥ URI µâµéú ơÀÌ µÀÛÇÒ ÍÀ» íÁÇÏ© mod_rewrite
¦ ÁÇ ÇÑÙ. Ç, µÀû Ƣ»óÈ£碯 ScriptAlias
ú ơÀ âÉÀ» ÀÇ ¯ÇÑ ÀÛÀÌ ÇÊäÇÏÙ.
# Host: Çìõ öíÀ» òÂÙ
UseCanonicalName Off
# splittable logs
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
<Directory /www/hosts>
# ScriptAlias ÄÀÎ CGI ÇÇàÀ» ơÁ¦ÇÒ ö âҡש碯
# ©â ExecCGI¦ »çëÇÑÙ
Options FollowSymLinks ExecCGI
</Directory>
# ÀÌÁ¦ îÁî ÎÀÌÙ
RewriteEngine On
# Host: Çìõ ƢÁ碯 öí ëÒÀÚƢ µÚ¯©ÀÖÀ» ö ÀÖÙ
RewriteMap lowercase int:tolower
## ÀÏÝ ¦ ÕÀú ÃÇÑÙ:
# Alias /icons/ Ƣ µÀÛÇϵµÏ - Ù¥ alias ëǵµ Ý
RewriteCond %{REQUEST_URI} !^/icons/
# CGIƢ µÀÛÇϵµÏ
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# ¯ÇÑ ÀÛ
RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
## ÀÌÁ¦ CGI¦ ÃÇÑÙ - MIME typeÀ» ơÁ¦Ç ÇÑÙ
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
# !
ÙÀÀ µÎÂ Í ơÀ ÀÏÀ» ÇÑÙ.
RewriteEngine on
RewriteMap lowercase int:tolower
# CGIƢ µÀÛÇϵµÏ
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# RewriteRuleÀÌ µÀÛÇϵµÏ È£碬íÀÌ ÃÙ¥Áö Ë»çÇÑÙ
RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$
# Ƣ»óÈ£碬íÀ» URI Õ ÙÀÎÙ
# [C] ÀÌ áú¦ ƢÁöí ÙÀ ÀçÀÛÀ» öÇàÇÔÀ» ҩÇÑÙ
RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
# ÀÌÁ¦ ÇÁ¦ ÄÀÏíÀ» µçÙ
RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2
# Àüà CGI µÅä碬¦ ÁÀÇÇÑÙ
ScriptAlias /cgi-bin/ /www/std-cgi/
ÙÀÀ mod_rewrite
ÀÇ í âÉÀ» »çëÇÏ© µµÀÇ ÁÄÀÏÀ» ƢÁöí Ƣ»óÈ£ÀÇ ç碬¦ ËÙ. õ À¯¬ÇÏÁö õ ÀâÇÑ ÁÀÌ ÇÊäÇÏÙ.
vhost.map
ÄÀÏÀ ÙÀú ơƢÙ:
www.customer-1.com /www/customers/1
www.customer-2.com /www/customers/2
# ...
www.customer-N.com /www/customers/N
http.conf
 ÙÀú ơƢÙ:
RewriteEngine on
RewriteMap lowercase int:tolower
# ëÀÀÄÀÏÀ» ÁÀÇÇÑÙ
RewriteMap vhost txt:/www/conf/vhost.map
# ÀעÍ ơÀÌ aliasµéÀ» ÃÇÑÙ
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# ÄÀÏ »ëÀ» ƢÁöí ãÂÙ
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1
ƢÉÇÑ î: tr