1.5. Configuração de hosts virtuais baseados no nome Apache
Os hosts virtuais baseados em nomes permitem que o Apache sirva diferentes conteúdos para diferentes domínios que resolvam para o endereço IP do servidor.
O procedimento nesta seção descreve a criação de um host virtual para o domínio example.com
e example.net
com diretórios raiz de documentos separados. Ambos os hosts virtuais servem conteúdo HTML estático.
Pré-requisitos
Os clientes e o servidor web resolvem o domínio
example.com
eexample.net
para o endereço IP do servidor web.Observe que você deve adicionar manualmente estas entradas ao seu servidor DNS.
Procedimento
Instale o pacote
httpd
:# yum instalar httpd
Edite o arquivo
/etc/httpd/conf/httpd.conf
:Anexe a seguinte configuração de host virtual para o domínio
example.com
:<VirtualHost *:80> DocumentRoot "/var/www/example.com/" ServerName example.com CustomLog /var/log/httpd/example.com_access.log combined ErrorLog /var/log/httpd/example.com_error.log </VirtualHost>
Estas configurações configuram o seguinte:
-
Todas as configurações da diretiva
<VirtualHost *:80>
são específicas para este host virtual. -
DocumentRoot
estabelece o caminho para o conteúdo da web do host virtual. ServerName
define os domínios para os quais este host virtual serve de conteúdo.Para definir vários domínios, adicione o parâmetro
ServerAlias
à configuração e especifique os domínios adicionais separados com um espaço neste parâmetro.-
CustomLog
define o caminho para o log de acesso do host virtual. ErrorLog
define o caminho para o registro de erros do host virtual.NotaO Apache utiliza o primeiro host virtual encontrado na configuração também para solicitações que não correspondem a nenhum domínio definido nos parâmetros
ServerName
eServerAlias
. Isto também inclui pedidos enviados para o endereço IP do servidor.
-
Todas as configurações da diretiva
Anexar uma configuração similar de host virtual para o domínio
example.net
:<VirtualHost *:80> DocumentRoot "/var/www/example.net/" ServerName example.net CustomLog /var/log/httpd/example.net_access.log combined ErrorLog /var/log/httpd/example.net_error.log </VirtualHost>
Criar as raízes dos documentos para ambos os anfitriões virtuais:
# mkdir /var/www/example.com/ # mkdir /var/www/example.net/
Se você definir caminhos nos parâmetros
DocumentRoot
que não estão dentro de/var/www/
, defina o contextohttpd_sys_content_t
em ambas as raízes do documento:# semanage fcontext -a -t httpd_sys_content_t "/srv/example.com(/.*)?" # restorecon -Rv /srv/example.com/ # semanage fcontext -a -t httpd_sys_content_t "/srv/example.net(/.\*)?" # restorecon -Rv /srv/example.net/
Estes comandos definem o contexto
httpd_sys_content_t
no diretório/srv/example.com/
e/srv/example.net/
.Note que você deve instalar o pacote
policycoreutils-python-utils
para executar o comandorestorecon
.Abra a porta
80
no firewall local:# firewall-cmd --permanent --add-port=80/tcp # firewall-cmd --reload
Habilite e inicie o serviço
httpd
:# systemctl enable --now httpd
Etapas de verificação
Criar um arquivo de exemplo diferente em cada raiz de documento do host virtual:
# echo "vHost example.com" > /var/www/example.com/index.html # echo "vHost example.net" > /var/www/example.net/index.html
-
Use um navegador e conecte-se a
http://example.com
. O servidor web mostra o arquivo de exemplo do host virtualexample.com
. -
Use um navegador e conecte-se a
http://example.net
. O servidor web mostra o arquivo de exemplo do host virtualexample.net
.
Recursos adicionais
-
Para mais detalhes sobre a configuração dos hosts virtuais Apache, consulte a documentação
Virtual Hosts
no manual Apache. Para detalhes sobre a instalação do manual, veja Seção 1.8, “Instalando o manual do Servidor HTTP Apache”.