Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.2
ã“ã®æ–‡æ›¸ã¯ã€ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®è¨å®šã®éš›ã« よãã‚る質å•ã«ç”ãˆã‚‹ã‚‚ã®ã§ã™ã€‚想定ã—ã¦ã„る対象㯠åå‰ãƒ™ãƒ¼ã‚¹ ã‚„ IP ベース ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’使ã£ã¦ 一ã¤ã®ã‚µãƒ¼ãƒã§è¤‡æ•°ã®ã‚¦ã‚§ãƒ–サイトをé‹ç”¨ã—ã¦ã„る状æ³ã§ã™ã€‚
Virtual_host
ã¨
mod_proxy を併用ã™ã‚‹_default_
ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’
使ã†ServerPath
ディレクティブを
使ã†ã‚µãƒ¼ãƒã¯ IP アドレスを一ã¤å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¦ã€DNS ã§ãƒžã‚·ãƒ³ã«
複数ã®åå‰ (CNAME) ãŒæŒ‡å®šã•れã¦ã„ã¾ã™ã€‚ã“ã®ãƒžã‚·ãƒ³ã§
www.example.com
㨠www.example.org
ã®ãŸã‚ã®ã‚¦ã‚§ãƒ–サーãƒã‚’実行ã•ã›ãŸã„ã¨ã—ã¾ã™ã€‚
Apache サーãƒã®è¨å®šã§ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®è¨å®šã‚’ã—ãŸã ã‘ã§ã€
知らãªã„é–“ã«ãã®ãƒ›ã‚¹ãƒˆåã«å¯¾å¿œã™ã‚‹ DNS ã®ã‚¨ãƒ³ãƒˆãƒªãŒ
作æˆã•れãŸã‚Šã¯ã—ã¾ã›ã‚“。ãã®ã‚µãƒ¼ãƒã® IP アドレスã«è§£æ±ºã•れる
よã†ã« DNS ã«åå‰ã‚’登録ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
ãã†ã§ãªã„ã¨èª°ã‚‚ã‚ãªãŸã®ã‚¦ã‚§ãƒ–サイトを見るã“ã¨ã¯ã§ãã¾ã›ã‚“。
ãƒãƒ¼ã‚«ãƒ«ã§ã®ãƒ†ã‚¹ãƒˆã®ãŸã‚ã« hosts
ファイルã«
ã‚¨ãƒ³ãƒˆãƒªã‚’è¿½åŠ ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ãŒã€ã“ã®å ´åˆã¯ãã®
hosts エントリã®ã‚るマシンã‹ã‚‰ã—ã‹å‹•作ã—ã¾ã›ã‚“。
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example.org
# Other directives here
</VirtualHost>
アスタリスクã¯ã™ã¹ã¦ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãƒžãƒƒãƒã—ã¾ã™ã®ã§ã€ä¸»ã‚µãƒ¼ãƒã¯
リクエストを扱ã„ã¾ã›ã‚“。www.example.com
ã¯
最åˆã«ã‚ã‚‹ãŸã‚ã€å„ªå…ˆé †ä½ã¯ä¸€ç•ªé«˜ããªã‚Šã€default ã‚‚ã—ãã¯
primary ã®ã‚µãƒ¼ãƒã¨è€ƒãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã¤ã¾ã‚Šã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒ
ã©ã® ServerName
ディレクティブã«ã‚‚マッãƒã—ãªã„å ´åˆã€
一番最åˆã® VirtualHost
ã«ã‚ˆã‚Šæ‰±ã‚れã¾ã™ã€‚
*
をシステムã®å®Ÿéš›ã® IP アドレスã«ç½®ãæ›ãˆã‚‹
ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ãã®å ´åˆã¯ VirtualHost
ã®å¼•æ•°ã¯
NameVirtualHost
ã®å¼•æ•°ã¨åŒã˜ã«ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“
:
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40>
# etc ...
ã—ã‹ã—ã€IP アドレスãŒäºˆæ¸¬ä¸å¯èƒ½ãªã‚·ã‚¹ãƒ†ãƒ
――例ãˆã°ãƒ—ãƒãƒã‚¤ãƒ€ã‹ã‚‰å‹•的㫠IP アドレスをå–å¾—ã—ã¦ä½•らã‹ã®
ダイナミック DNS を使ã£ã¦ã„ã‚‹å ´åˆãªã©â€•―ã«ãŠã„ã¦ã¯ã€*
指定ã¯ã•らã«ä¾¿åˆ©ã§ã™ã€‚*
ã¯ã™ã¹ã¦ã® IP アドレスã«
マッãƒã—ã¾ã™ã®ã§ã€ã“ã®è¨å®šã«ã—ã¦ãŠã‘ã° IP アドレスãŒå¤‰æ›´ã•れã¦ã‚‚
è¨å®šå¤‰æ›´ã›ãšã«å‹•作ã—ã¾ã™ã€‚
åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒ†ã‚£ãƒ³ã‚°ã§ã¯ã»ã¼ã™ã¹ã¦ã®çжæ³ã§ã€ 上記ã®è¨å®šã§å¸Œæœ›ã®è¨å®šã«ãªã£ã¦ã„ã‚‹ã“ã¨ã§ã—ょã†ã€‚ 実際ã“ã®è¨å®šãŒå‹•作ã—ãªã„ã®ã¯ã€IP アドレスやãƒãƒ¼ãƒˆã®é•ã„ã«ã‚ˆã£ã¦ é•ã†ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’é€ã‚‹ã¨ãã ã‘ã§ã™ã€‚
ã“ã“ã§èª¬æ˜Žã•れã¦ã„る方法㯠IP アドレス㌠何個ã‚ã£ã¦ã‚‚åŒæ§˜ã«ã§ãã¾ã™ã€‚
サーãƒã«ã¯äºŒã¤ IP アドレスãŒã¤ã„ã¦ã„ã¾ã™ã€‚一ã¤ç›®
(172.20.30.40
) ã§ã¯ä¸»ã‚µãƒ¼ãƒ
server.domain.com
を扱ã„ã€ã‚‚ã†ä¸€æ–¹
(172.20.30.50
) ã§ã¯äºŒã¤ã‹ãã‚Œä»¥ä¸Šã®æ•°ã®
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’扱ã„ã¾ã™ã€‚
Listen 80
# This is the "main" server running on 172.20.30.40
ServerName server.domain.com
DocumentRoot /www/mainserver
# This is the other address
NameVirtualHost 172.20.30.50
<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
ServerName www.example.com
# Other directives here ...
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
# Other directives here ...
</VirtualHost>
172.20.30.50
以外ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯ä¸»ã‚µãƒ¼ãƒ
ãŒæ‰±ã„ã¾ã™ã€‚172.20.30.50
ã¸ã®ã€æœªçŸ¥ã®ãƒ›ã‚¹ãƒˆåã¾ãŸã¯
Host:
ヘッダãªã—ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯ www.example.com
ãŒæ‰±ã„ã¾ã™ã€‚
サーãƒãƒžã‚·ãƒ³ã¯ IP アドレスを二㤠(192.168.1.1
㨠172.20.30.40
) æŒã£ã¦ã„ã¾ã™ã€‚ã“ã®ãƒžã‚·ãƒ³ã¯å†…部
(イントラãƒãƒƒãƒˆ) 㨠外部 (インターãƒãƒƒãƒˆ) ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®é–“ã«
ã‚りã¾ã™ã€‚server.example.com
ã¯ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®å¤–ã‹ã‚‰ã¯
外部アドレス (172.20.30.40
) ã¨ã—ã¦è§£æ±ºã•れã¾ã™ãŒã€
ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ä¸ã‹ã‚‰ã¯å†…部アドレス (192.168.1.1
)
ã¨ã—ã¦è§£æ±ºã•れã¾ã™ã€‚
VirtualHost
一ã¤ã ã‘ã§ã‚µãƒ¼ãƒãŒå†…部ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¨
外部ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ä¸¡æ–¹ã«åŒã˜ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã§å¿œç”ã™ã‚‹ã‚ˆã†ã«ã§ãã¾ã™ã€‚
NameVirtualHost 192.168.1.1
NameVirtualHost 172.20.30.40
<VirtualHost 192.168.1.1 172.20.30.40>
DocumentRoot /www/server1
ServerName server.example.com
ServerAlias server
</VirtualHost>
ã“れã§ã©ã¡ã‚‰ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‹ã‚‰ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚‚åŒã˜ VirtualHost
ã§æ‰±ã‚れるよã†ã«ãªã‚Šã¾ã™ã€‚
内部ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã§ã¯å®Œå…¨ãªãƒ›ã‚¹ãƒˆåã®
server.example.com
ã®ä»£ã‚りã«ã€å˜ã« server
を使ã†ã“ã¨ãŒã§ãã¾ã™ã€‚
上ã®ä¾‹ã§ã¯ã€IP アドレスã®ãƒªã‚¹ãƒˆã‚’ã€ã™ã¹ã¦ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã«
åŒã˜ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã§å¿œç”ã™ã‚‹ *
ã«ç½®ãæ›ãˆã‚‰ã‚Œã¾ã™ã€‚
åŒã˜ IP ã«è¤‡æ•°ã®ãƒ‰ãƒ¡ã‚¤ãƒ³ãŒã‚りã€ã•らã«è¤‡æ•°ã®ãƒãƒ¼ãƒˆã‚’使ã£ã¦ リクエストを扱ã„ãŸã„ã¨ããŒã‚りã¾ã™ã€‚"NameVirtualHost" ã‚¿ã‚°ã®ä¸ã§ ãƒãƒ¼ãƒˆã‚’定義ã™ã‚‹ã“ã¨ã§ã€ã“れを動作ã•ã›ã‚‰ã‚Œã¾ã™ã€‚ NameVirtualHost name:port ç„¡ã—ã‚„ Listen ディレクティブ㧠<VirtualHost name:port> を使ãŠã†ã¨ã—ã¦ã‚‚ã€ãã®è¨å®šã¯å‹•作ã—ã¾ã›ã‚“。
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot /www/domain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example.com
DocumentRoot /www/domain-8080
</VirtualHost>
<VirtualHost 172.20.30.40:80>
ServerName www.example.org
DocumentRoot /www/otherdomain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>
サーãƒã¯ www.example.com
㨠www.example.org
ã«ãれãžã‚Œè§£æ±ºã•れるã€äºŒã¤ã® IP アドレス (172.20.30.40
ã¨
172.20.30.50
) ãŒã‚りã¾ã™ã€‚
Listen 80
<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
<VirtualHost>
ディレクティブã®ã©ã‚Œã§ã‚‚
指定ã•れã¦ã„ãªã„アドレス (例ãˆã° localhost
) ã¯ã€
主サーãƒãŒã‚れã°ãã“ã«è¡Œãã¾ã™ã€‚
サーãƒãƒžã‚·ãƒ³ã¯ãれãžã‚Œ www.example.com
ã¨
www.example.org
ã«ãれãžã‚Œè§£æ±ºã•れるã€IP アドレスを二ã¤
(172.20.30.40
㨠172.20.30.50
) æŒã£ã¦ã„ã¾ã™ã€‚
ã©ã¡ã‚‰ã‚‚ãƒãƒ¼ãƒˆ 80 㨠8080 ã§ãƒ›ã‚¹ãƒˆã‚’走らã›ã¾ã™ã€‚
Listen 172.20.30.40:80
Listen 172.20.30.40:8080
Listen 172.20.30.50:80
Listen 172.20.30.50:8080
<VirtualHost 172.20.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example.org
</VirtualHost>
<VirtualHost 172.20.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example.org
</VirtualHost>
ã„ãã¤ã‹ã®ãƒžã‚·ãƒ³ã§ã¯åå‰ãƒ™ãƒ¼ã‚¹ã®ã€ãã®ä»–ã§ã¯ IP ベースã®ãƒãƒ¼ãƒãƒ£ãƒ« ホストをã—ã¾ã™ã€‚
Listen 80
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/example3
ServerName www.example3.net
</VirtualHost>
# IP-based
<VirtualHost 172.20.30.50>
DocumentRoot /www/example4
ServerName www.example4.edu
</VirtualHost>
<VirtualHost 172.20.30.60>
DocumentRoot /www/example5
ServerName www.example5.gov
</VirtualHost>
Virtual_host
ã¨
mod_proxy を併用ã™ã‚‹æ¬¡ã®ä¾‹ã¯ã€ãƒ•ãƒãƒ³ãƒˆå´ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã§ä»–ã®ãƒžã‚·ãƒ³ã¸ãƒ—ãƒã‚¯ã‚·ã—ã¾ã™ã€‚
例ã§ã¯ 192.168.111.2
ã®ãƒžã‚·ãƒ³ã§ã¯ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆåã¯
åŒã˜åå‰ã§è¨å®šã•れã¦ã„ã¾ã™ã€‚複数ã®ãƒ›ã‚¹ãƒˆåを一å°ã®ãƒžã‚·ãƒ³ã«ãƒ—ãƒã‚¯ã‚·ã™ã‚‹
å ´åˆã¯ã€ProxyPreserveHost On
ディレクティブを使ã£ã¦ã€å¸Œæœ›ã®ãƒ›ã‚¹ãƒˆåを渡ã›ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://192.168.111.2
ProxyPassReverse / http://192.168.111.2/
ServerName hostname.example.com
</VirtualHost>
_default_
ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’
使ã†_default_
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆæœªæŒ‡å®šã® IP アドレスã¨ãƒãƒ¼ãƒˆã€ã¤ã¾ã‚Šä»–ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã« 使ã‚れã¦ã„ãªã„アドレスã¨ãƒãƒ¼ãƒˆã®çµ„ã¿åˆã‚ã›ã€ã¸ã®ã™ã¹ã¦ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’ å—ã‘å–りã¾ã™ã€‚
<VirtualHost _default_:*>
DocumentRoot /www/default
</VirtualHost>
ã“ã®ã‚ˆã†ã«ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰ã®ãƒãƒ¼ãƒˆã§ãƒ‡ãƒ•ォルトã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’ 指定ã™ã‚‹ã¨ã€ä¸»ã‚µãƒ¼ãƒã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆãŒè¡Œãã®ã‚’防ã’ã¾ã™ã€‚
デフォルトã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¯åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã«
使ã‚れã¦ã„るアドレスã¨ãƒãƒ¼ãƒˆã®çµ„ã«é€ã‚‰ã‚ŒãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã†ã“ã¨ã¯
ã‚りã¾ã›ã‚“。リクエストãŒä¸æ˜Žãª Host:
ヘッダやãã®
ヘッダãŒãªã‹ã£ãŸã‚Šã™ã‚‹å ´åˆã¯åŸºæœ¬åå‰ãƒ™ãƒ¼ã‚¹ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ (ãã®
アドレスã¨ãƒãƒ¼ãƒˆã§è¨å®šãƒ•ァイルä¸ã§æœ€åˆã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ) ã«ã‚ˆã‚Š
扱ã‚れã¾ã™ã€‚
ã©ã‚“ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã‚‚ AliasMatch
ã‚„ RewriteRule
を使ã£ã¦
å˜ä¸€ã®æƒ…å ±ãƒšãƒ¼ã‚¸ (やスクリプト) ã«æ›¸ãæ›ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
_default_
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆä¸€ã¤ã‚ã®è¨å®šã¨ã»ã¼åŒã˜ã§ã™ãŒã€ã‚µãƒ¼ãƒã¯è¤‡æ•°ã®ãƒãƒ¼ãƒˆã‚’ listen ã—ã¦ãŠã‚Šã€
80 番ãƒãƒ¼ãƒˆã«å¯¾ã—ã¦äºŒã¤ã‚ã® _default_
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’
è¨å®šã—ãŸã„å ´åˆã§ã™ã€‚
<VirtualHost _default_:80>
DocumentRoot /www/default80
# ...
</VirtualHost>
<VirtualHost _default_:*>
DocumentRoot /www/default
# ...
</VirtualHost>
80 番ãƒãƒ¼ãƒˆã®ãƒ‡ãƒ•ォルトãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ (ワイルドカードãƒãƒ¼ãƒˆã® デフォルトãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚ˆã‚Šã‚‚å‰ã«æ›¸ã‹ã‚Œã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“) 㯠未指定㮠IP アドレスã«é€ã‚‰ã‚ŒãŸã™ã¹ã¦ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã„ã¾ã™ã€‚ 主サーãƒã¯ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã„ã¾ã›ã‚“。
_default_
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ80 番ãƒãƒ¼ãƒˆã«ã¯ãƒ‡ãƒ•ォルトã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆãŒå¿…è¦ã§ã€ä»–ã® ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¯ãƒ‡ãƒ•ォルトãŒå¿…è¦ãªã„å ´åˆã§ã™ã€‚
<VirtualHost _default_:80>
DocumentRoot /www/default
...
</VirtualHost>
80 番ãƒãƒ¼ãƒˆã¸ã®ã‚¢ãƒ‰ãƒ¬ã‚¹æœªæŒ‡å®šã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯ãƒ‡ãƒ•ォルトã®ãƒãƒ¼ãƒãƒ£ãƒ« ホストã‹ã‚‰é€ã‚‰ã‚Œã¾ã™ã€‚ä»–ã®æœªæŒ‡å®šã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ãƒãƒ¼ãƒˆã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯ 主サーãƒã‹ã‚‰é€ã‚‰ã‚Œã¾ã™ã€‚
ホストåãŒåå‰ www.example.org
ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆ
(åå‰ãƒ™ãƒ¼ã‚¹ã®ä¾‹ã® 2 番目ã®è¨å®š) ãŒå°‚用㮠IP アドレスを
å¾—ãŸã¨ã—ã¾ã™ã€‚åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®å¤ã„ IP アドレスを
ã‚ャッシュã—ã¦ã„ã‚‹ãƒãƒ¼ãƒ サーãƒã‚„プãƒã‚ã‚·ã®ãŸã‚ã«ç§»è¡ŒæœŸé–“ä¸ã¯ä¸¡æ–¹ã®
ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’æä¾›ã—ãŸã„ã¨ã—ã¾ã™ã€‚
ç”ã¯ç°¡å˜ã§ã™ã€‚å˜ã«æ–°ã—ã„ IP アドレス (172.20.30.50
)
ã‚’ VirtualHost
ディレクティブã«è¿½åŠ ã™ã‚‹ã“ã¨ã§
ã§ãã¾ã™ã€‚
Listen 80
ServerName www.example.com
DocumentRoot /www/example1
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example.org
# ...
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/example3
ServerName www.example.net
ServerAlias *.example.net
# ...
</VirtualHost>
ã“ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¯æ–°ã—ã„アドレス (IP ベースã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¨ã—ã¦) ã¨å¤ã„アドレス(åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã¨ã—ã¦) ã®ä¸¡æ–¹ã‹ã‚‰ アクセスã§ãã¾ã™ã€‚
ServerPath
ディレクティブを
使ã†åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆãŒäºŒã¤ã‚るサーãƒãŒã‚ã‚‹ã¨ã—ã¾ã™ã€‚
æ£ã—ã„ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’å¾—ã‚‹ãŸã‚ã«ã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã¯æ£ã—ã„
Host:
ヘッダをé€ã‚‰ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
å¤ã„ HTTP/1.0 ã¯ãã®ã‚ˆã†ãªãƒ˜ãƒƒãƒ€ã‚’é€ã‚‰ãªã„ã®ã§ã€Apache ã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒ
ã©ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚’æ„図ã—ãŸã®ã‹ã•ã£ã±ã‚Šã‚ã‹ã‚Šã¾ã›ã‚“
(ãªã®ã§ã€ä¸»ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’扱ã„ã¾ã™)。
å¯èƒ½ãªé™ã‚Šã®ä¸‹ä½äº’æ›æ€§ã‚’å¾—ã‚‹ãŸã‚ã€åå‰ãƒ™ãƒ¼ã‚¹ã®ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã®
URL 接é 辞ã¸ã®ãƒªãƒ³ã‚¯ã®æ›¸ã‹ã‚ŒãŸãƒšãƒ¼ã‚¸ã‚’è¿”ã™ã€
主ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆãŒä½œæˆã•れã¾ã™ã€‚
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40>
# primary vhost
DocumentRoot /www/subdomain
RewriteEngine On
RewriteRule ^/.* /www/subdomain/index.html
# ...
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub1
ServerName www.sub1.domain.tld
ServerPath /sub1/
RewriteEngine On
RewriteRule ^(/sub1/.*) /www/subdomain$1
# ...
</VirtualHost>
<VirtualHost 172.20.30.40>
DocumentRoot /www/subdomain/sub2
ServerName www.sub2.domain.tld
ServerPath /sub2/
RewriteEngine On
RewriteRule ^(/sub2/.*) /www/subdomain$1
# ...
</VirtualHost>
ServerPath
ディレクティブã®è¨å®šã«
よりã€URL http://www.sub1.domain.tld/sub1/
ã¯
常㫠sub1-vhost ã«ã‚ˆã‚Šæ‰±ã‚れã¾ã™ã€‚URL
http://www.sub1.domain.tld/
ã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯
ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒæ£ã—ã„ Host:
ヘッダをé€ã£ãŸã¨ãã«ã®ã¿
sub1-vhost ã‹ã‚‰é€ã‚‰ã‚Œã¾ã™ã€‚Host:
ヘッダãŒãªã‘れã°
クライアントã¯ä¸»ãƒ›ã‚¹ãƒˆã®æƒ…å ±ãƒšãƒ¼ã‚¸ã‚’å¾—ã¾ã™ã€‚
一ã¤å¥‡å¦™ãªå‹•作をã™ã‚‹ç‚¹ãŒã‚ã‚‹ã“ã¨ã¯è¦šãˆã¦ãŠã„ã¦ãã ã•ã„。
http://www.sub2.domain.tld/sub1/
ã¸ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚‚
Host:
ヘッダãŒãªã‘れ㰠sub1-vhost ã«ã‚ˆã‚Šæ‰±ã‚れã¾ã™ã€‚
æ£ã—ã„ Host:
ヘッダをé€ã£ãŸã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã¯ã©ã¡ã‚‰ã®
URLã€ã¤ã¾ã‚пޥé 辞ãŒã‚ã‚‹æ–¹ã‚‚ç„¡ã„æ–¹ã‚‚使ãˆã‚‹ã‚ˆã†ã«
RewriteRule
ディレクティブãŒ
使ã‚れã¦ã„ã¾ã™ã€‚