Description: | Contains directives that apply only to a specific hostname or IP address |
---|---|
Syntax: | <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost> |
Context: | server config |
Status: | Core |
Module: | core |
<VirtualHost>
and </VirtualHost>
are used to enclose a group of directives that will apply only to a particular virtual host. Any directive that is allowed in a virtual host context may be used. When the server receives a request for a document on a particular virtual host, it uses the configuration directives enclosed in the <VirtualHost>
section. Addr can be:
- The IP address of the virtual host;
- A fully qualified domain name for the IP address of the virtual host (not recommended);
- The character
*
, which is used only in combination withNameVirtualHost *
to match all IP addresses; or - The string
_default_
, which is used only with IP virtual hosting to catch unmatched IP addresses.
Example
<VirtualHost 10.1.2.3>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>
IPv6 addresses must be specified in square brackets because the optional port number could not be determined otherwise. An IPv6 example is shown below:
<VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>
Each Virtual Host must correspond to a different IP address, different port number or a different host name for the server, in the former case the server machine must be configured to accept IP packets for multiple addresses. (If the machine does not have multiple network interfaces, then this can be accomplished with the ifconfig alias
command -- if your OS supports it).
Note
The use of <VirtualHost>
does not affect what addresses Apache listens on. You may need to ensure that Apache is listening on the correct addresses using Listen
.
When using IP-based virtual hosting, the special name _default_
can be specified in which case this virtual host will match any IP address that is not explicitly listed in another virtual host. In the absence of any _default_
virtual host the "main" server config, consisting of all those definitions outside any VirtualHost section, is used when no IP-match occurs. (But note that any IP address that matches a NameVirtualHost
directive will use neither the "main" server config nor the _default_
virtual host. See the name-based virtual hosting documentation for further details.)
You can specify a :port
to change the port that is matched. If unspecified then it defaults to the same port as the most recent Listen
statement of the main server. You may also specify :*
to match all ports on that address. (This is recommended when used with _default_
.)
A ServerName
should be specified inside each <VirtualHost>
block. If it is absent, the ServerName
from the "main" server configuration will be inherited.
Security
See the security tips document for details on why your security could be compromised if the directory where log files are stored is writable by anyone other than the user that starts the server.
'Infrastructure' 카테고리의 다른 글
Apache rewrite Module (0) | 2011.04.29 |
---|---|
Apache Module mod_rewrite (0) | 2011.04.29 |
RDP 클라이언트에서 터미널 서버 라이선스 제거 (0) | 2011.04.27 |
ETRI Smart Sign 기술 특징 (0) | 2011.04.01 |
윈도우 7 식별되지 않은 네트워크 (0) | 2011.02.11 |