PNG IHDR ; IDATxܻn0K )(pA7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5 bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô!x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%tMז -lG6mrz2s%9s@-k9=)kB5\+͂ZsٲRn~GRCwIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL /F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ R IENDB`
Apache HTTP Server Version 2.4
httpd.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_vhost_alias
Ͽ ذ , ġ 1.3.6 ϸ Ѵٸ
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 Ѵٸ ߸
ִ.
# 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.user.isp.com
/home/user/
δ Ϻθ
ϸ ִ.
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
ڿ ߰ ִ.
mod_rewrite
ȣƮ ù° ϴ
httpd.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]
# !
mod_rewrite
Ȩ ýι° Ѵ.
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