O termo Virtual Host refere-se à prática de executar mais de um site (como exemplo1.com e exemplo2.com) em uma única máquina. Um host virtual pode ser “baseado em IP”, o que significa que você tem um endereço IP diferente para cada site, ou “baseado em nome”, o que significa que você tem vários nomes em execução em cada endereço IP. O fato de eles serem executados no mesmo servidor físico é invisível para o usuário final.
O Apache foi um dos primeiros servidores a oferecer suporte a hosts virtuais baseados em IP. O Apache versão 1.1 e posteriores suportam hosts virtuais (vhosts) baseados em IP e em nomes. A última variante de um host virtual às vezes também é chamada de host virtual baseado em host ou não IP.
Virtual Host Configuration on XAMPP
- Abra o arquivo de configuração do Apache Virtual Hosts no diretório de instalação do XAMPP (por exemplo) em “C:xamppapacheconfextrahttpd-vhosts.conf
- Adicione o seguinte código no final do arquivo
<VirtualHost *:80> ServerName www.example1.com DocumentRoot "C:\XAMPP\htdocs" <Directory "C:\XAMPP\htdocs"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost>
- Adicione uma configuração no final de um arquivo do Windows host em “C:\Windows\System32\drivers\etc\host“.
127.0.0.1 www.example1.com
A configuração virtual hospeda vários domínios com um único IP público
- Por exemplo, temos 2 domínios com nomes www.example1.com e www.example2.com.
- Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost *:80> ServerName www.example1.com DocumentRoot "C:\XAMPP\htdocs\www.example1.com" <Directory "C:XAMPP\htdocs\www.example1.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost> <VirtualHost *:80> ServerName www.example2.com DocumentRoot "C:\XAMPP\htdocs\www.example2.com" <Directory "C:\XAMPP\htdocs\www.example2.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost>
- Add a setting at the end of a windows host file in “C:\Windows\System32\drivers\etc\host”.
127.0.0.1 www.example1.com 127.0.0.1 www.example2.com
Configuração virtual de vários domínios e hosts IP
- Por exemplo, temos 2 domínios com nomes www.example1.com, ip 172.20.30.40 e www.example2.com, ip 172.20.30.50.
- Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost 172.20.30.40:80> ServerName www.example1.com DocumentRoot "C:\XAMPP\htdocs\www.example1.com" <Directory "C:XAMPP\htdocs\www.example1.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost> <VirtualHost 172.20.30.50:80> ServerName www.example2.com DocumentRoot "C:\XAMPP\htdocs\www.example2.com" <Directory "C:\XAMPP\htdocs\www.example2.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost>
- Adicione uma configuração no final de um arquivo de host do Windows em “C:\Windows\System32\drivers\etc\host”.
127.0.0.1 www.example1.com 127.0.0.1 www.example2.com
Outros artigos interessantes
Configuração de host virtual com portas diferentes
- Por exemplo, temos 2 domínios com nomes www.example1.com, ip 172.20.30.40 e www.example2.com, ip 172.20.30.50 em execução na porta 80 e www.example3com, ip 172.20.30.50 com a porta 8080.
- Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<VirtualHost 172.20.30.40:80> ServerName www.example1.com DocumentRoot "C:\XAMPP\htdocs\www.example1.com" <Directory "C:\XAMPP\htdocs\www.example1.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost> <VirtualHost 172.20.30.50:80> ServerName www.example2.com DocumentRoot "C:\XAMPP\htdocs\www.example2.com" <Directory "C:\XAMPP\htdocs\www.example2.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost> <VirtualHost 172.20.30.50:8080> ServerName www.example3.com DocumentRoot "C:\XAMPP\htdocs\www.example3.com" <Directory "C:\XAMPP\htdocs\www.example3.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </Directory </VirtualHost>
- Add a setting at the end of a windows host file in “C:\Windows\System32\drivers\etc\host”.
127.0.0.1 www.example1.com 127.0.0.1 www.example2.com 127.0.0.1 www.example3.com
Configurar o host virtual com SSL
- Crie um certificado SSL, discutido no próximo artigo.
Por exemplo, um certificado com o nome de arquivo “server.crt“, “server.key - Coloque o certificado SSL em “C:\XAMPP\apache\conf”
- Adicione o seguinte código no final do arquivo httpd-vhosts.conf
<virtualhost *:443> ServerName www.example1.com DocumentRoot "C:\XAMPP\htdocs\www.example1.com" SSLEngine on SSLCertificateFile "conf/ssl.crt/server.crt" SSLCertificateKeyFile "conf/ssl.key/server.key" <directory "c:\xampp\htdocs\www.example1.com"> Options Indexes FollowSymLinks Includes ExecCGI Order allow,deny Allow from all </directory> </virtualhost>