Httpd Virtual Host Configuration
Internal
Overview
Virtual hosts can be declared using the <VirtualHost> configuration element. <VirtualHost> encloses a group of directives that apply to only a particular virtual host.
<VirtualHost ip:port> </VirtualHost>
Name-Based Virtual Host Configuration
For each virtual host you want to serve, create a <VirtualHost> section.
The <VirtualHost> section must contain at minimum a ServerName directive to designate what host to serve and a DocumentRoot directive to indicate the file system directory that contains the content to server.
Name-Based Virtual Host Resolution
When a request arrives, the server must find the best (most specific) matching <VirtualHost> configuration based on the IP address and the port the request came on. If just one <VirtualHost> is identified, that's the one that is used. If there is more than one virtual host that matches the IP:port, httpd will further compare the ServerName and ServerAlias directives to the value of the "Host" header arrived with the request. If no ServerName/ServerAlias match is found, then the first listed virtual host is used.
Configuration Inheritance
All directives present in the httpd configuration file above the <VirtualHost> section set up the values used by the "main" server, which responds to any requests that are not handled by a <VirtualHost> definition. These values also provide defaults for any <VirtualHost> containers that defined later in the file.
If any of these directives appear inside a <VirtualHost> container, their values override the "main" defaults.
Overridable directives:
Example
# # ... the "main" section # IncludeOptional conf.d/*.conf <VirtualHost> </VirtualHost> <VirtualHost> </VirtualHost>