Introdução

O servidor web Apache é a forma mais popular de servir conteúdo da web na internet. Ele representa mais de metade de todos os sites ativos na internet e é extremamente poderoso e flexível.

O Apache quebra sua funcionalidade e componentes em unidades individuais que você pode personalizar independentemente. A unidade básica que descreve um site ou domínio individual é chamada de host virtual .

Usando hosts virtuais, você pode usar um servidor para hospedar vários domínios ou sites fora de uma única interface ou IP usando um mecanismo de correspondência. Você configura uma solicitação de um domínio para direcionar o visitante para um diretório específico que contém as informações desse site. Em outras palavras, você pode hospedar mais de um site em um único servidor. Este esquema é expansível sem qualquer limite de software, desde que o servidor possa lidar com a carga.

Neste tutorial, você configurará dois hosts virtuais Apache em um servidor Debian 8, oferecendo conteúdo diferente aos visitantes com base no domínio que visitarem.

Pré-requisitos

Para concluir este tutorial, você precisará:

  • Um servidor Debian 8 com um usuário não-root com privilégios de sudo. Você pode configurar um usuário com esses privilégios em nosso guia Configuração inicial do servidor com o Debian 8 .
  • Apache instalado e configurado, como mostrado em Como instalar Linux, Apache, MySQL, PHP (LAMP) Stack no Debian 8 .

Neste guia, example.com hosts virtuais para example.com e example.com , mas você poderá substituir seus próprios domínios ou valores ao mesmo tempo. Para apontar seus nomes de domínio no seu servidor.

Se você não tem domínios disponíveis para jogar, você pode usar example.com e example.com e siga a Etapa 5 deste tutorial para configurar seu arquivo de hosts local para mapear esses domínios para o endereço IP do servidor. Isso permitirá que você teste sua configuração de seu computador local.

Etapa 1 – Criando a estrutura de diretórios

O primeiro passo que vamos tomar é fazer uma estrutura de diretório que irá armazenar os dados do site que estaremos servindo aos visitantes.

Nossa raiz do documento, o diretório de nível superior que o Apache procura para encontrar o conteúdo a ser exibido, será definido como diretórios individuais no diretório /var/www . Vamos criar um diretório para cada um dos hosts virtuais que vamos configurar.

Dentro de cada um desses diretórios, criaremos uma pasta chamada public_html que conterá as páginas da Web que queremos veicular. Isso nos dá um pouco mais de flexibilidade na forma como implantamos aplicativos web mais complexos no futuro; A pasta public_html o conteúdo da Web que queremos veicular ea pasta pai pode conter scripts ou código de aplicativo para oferecer suporte ao conteúdo da Web.

Crie os diretórios usando os seguintes comandos:

  • Sudo mkdir -p / var / www / example.com / public_html
  • Sudo mkdir -p / var / www / test.com / public_html

Desde que criamos os diretórios com o sudo , eles são de propriedade do nosso usuário root. Se quisermos que nosso usuário regular seja capaz de modificar arquivos em nossos diretórios da web, alteramos a propriedade, assim:

  • Sudo chown -R $ USER: $ USER / var / www / example.com / public_html
  • Sudo chown -R $ USER: $ USER / var / www / test.com / public_html

A variável $USER usa o valor do usuário que você está logado no momento como quando você pressionar ENTER . Ao fazer isso, nosso usuário regular agora possui os public_html public_html onde public_html armazenando nosso conteúdo.

Também devemos modificar nossas permissões um pouco para garantir que o acesso de leitura é permitido para o diretório geral da Web e todos os arquivos e pastas que ele contém para que as páginas possam ser veiculadas corretamente. Execute este comando para alterar as permissões na pasta /var/www e seus filhos:

  • Sudo chmod -R 755 / var / www

Se você é novo no gerenciamento de permissões no Linux, consulte este tutorial .

Seu servidor web agora deve ter as permissões necessárias para exibir conteúdo e seu usuário deve ser capaz de criar conteúdo dentro das pastas necessárias. Vamos criar um arquivo HTML para cada site.

Temos a nossa estrutura de diretórios no local. Vamos criar algum conteúdo para veicular.

Etapa 2 – Criando páginas padrão para cada host virtual

Vamos criar uma página index.html simples para cada site. Isso nos ajudará a garantir que nossos hosts virtuais estejam configurados corretamente mais tarde.

Vamos começar com a página para example.com . Edite um novo arquivo index.html com o seguinte comando:

  • Nano / var / www / example.com /public_html/index.html

Neste ficheiro, crie um documento HTML simples que indique que o visitante está a ver a página inicial do example.com :

/var/www/example.com/public_html/index.html
 <html> <head> <title>Welcome to Example.com !</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body> </html>

Salve e feche o arquivo quando terminar.

Agora copie este arquivo para o site test.com :

  • Cp / var / www / example.com /public_html/index.html / var / www / test.com /public_html/index.html

Em seguida, abra o arquivo em seu editor:

  • Nano / var / www / test.com /public_html/index.html

Altere o arquivo para que ele faça referência test.com instaed de example.com :

/var/www/test.com/public_html/index.html
 <html> <head> <title>Welcome to Test.com !</title> </head> <body> <h1>Success! The test.com virtual host is working!</h1> </body> </html>

Salve e feche esse arquivo. Agora você tem as páginas necessárias para testar a configuração do host virtual. Em seguida, vamos configurar os hosts virtuais.

Etapa 3 – Criar novos arquivos de host virtual

Arquivos de host virtuais especificam a configuração real de nossos hosts virtuais e ditar como o servidor web Apache responderá a várias solicitações de domínio.

O Apache vem com um arquivo de host virtual padrão chamado 000-default.conf que você pode usar como um ponto de partida. Copie este arquivo para o primeiro domínio:

  • Sudo cp /etc/apache2/sites-available/000-default.conf / etc / apache2 / sites-available / example.com .conf

Nota : A configuração padrão do Apache no Debian 8 requer que cada arquivo de host virtual termine em .conf .

Abra o novo arquivo no seu editor:

  • Sudo nano / etc / apache2 / sites-disponível / example.com .conf

O arquivo será parecido com o seguinte exemplo, com alguns comentários adicionais:

/etc/apache2/sites-available/example.com.conf
 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Esse host virtual corresponde a todas as solicitações feitas na porta 80 , a porta HTTP padrão. Vamos fazer algumas alterações nessa configuração e adicionar algumas novas diretivas.

Primeiro, altere a ServerAdmin ServerAdmin para um e-mail que o administrador do site pode receber por e-mail.

/etc/apache2/sites-available/example.com.conf
 ServerAdmin admin@example.com

Em seguida, precisamos adicionar duas novas diretrizes. O primeiro, chamado ServerName , estabelece o domínio base para esta definição de host virtual. O segundo, chamado ServerAlias , define outros nomes que devem ServerAlias como se fossem o nome base. Isso é útil para combinar hosts adicionais que você definiu, portanto tanto o example.com como o http://www.example.com , desde que ambos os hosts apontem para o endereço IP deste servidor.

Adicione estas duas diretivas ao seu arquivo de configuração, logo após a linha ServerAdmin :

/etc/apache2/sites-available/example.com.conf
 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/html ...

Em seguida, altere a DocumentRoot da DocumentRoot do DocumentRoot para este domínio DocumentRoot a DocumentRoot DocumentRoot para apontar para o diretório criado para este host:

 DocumentRoot /var/www/ example.com /public_html

Depois de fazer essas alterações, o arquivo deve ter esta aparência:

/etc/apache2/sites-available/example.com.conf
 <VirtualHost *:80> ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/ example.com /public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Salve e feche o arquivo.

Em seguida, crie o segundo arquivo de configuração criando uma cópia desse arquivo:

  • Sudo cp / etc / apache2 / site-disponível / example.com .conf / etc / apache2 / sites-disponível / test.com .conf

Abra o novo arquivo no seu editor:

  • Sudo nano / etc / apache2 / sites-disponível / test.com .conf

Em seguida, altere as configurações relevantes para fazer referência ao seu segundo domínio. Quando terminar, o arquivo ficará assim:

/etc/apache2/sites-available/test.com.conf
 <VirtualHost *:80> ServerAdmin admin@test.com ServerName test.com ServerAlias www.test.com DocumentRoot /var/www/ test.com /public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Salve e feche o arquivo.

Agora que criamos nossos arquivos de host virtual, podemos ativá-los.

Etapa 4 – Ativando os novos arquivos de host virtual

Você criou as pastas e os arquivos de configuração do host virtual, mas o Apache não os usará até que você os ative. Você pode usar a a2ensite para a2ensite cada um de seus sites.

Ative o primeiro site:

  • Sudo a2ensite example.com .conf

Você verá a saída a seguir se não houver erros de sintaxe ou erros de digitação no arquivo:

Saída
  Ativando o site example.com.
 Para ativar a nova configuração, é necessário executar:
   Serviço apache2 recarregar

Para que suas alterações entrem em vigor, você precisa recarregar o Apache. Mas antes de você, habilite o outro site:

  • Sudo a2ensite test.com .conf

Você verá uma mensagem semelhante indicando que o site foi habilitado:

Saída
  Ativando site test.com.
 Para ativar a nova configuração, é necessário executar:
   Serviço apache2 recarregar

Em seguida, 000-default.conf o site padrão definido em 000-default.conf usando o comando a2dissite :

  • Sudo a2dissite 000-default.conf

Agora, reinicie o Apache:

  • Sudo systemctl restart apache2

Os sites agora estão configurados. Vamos testá-los. Se você estiver usando domínios reais configurados para apontar para o endereço IP do servidor, você pode ignorar a próxima etapa. Mas se seus domínios ainda não foram propagados, ou se você está apenas testando, continue a ler para aprender a testar essa configuração usando o computador local.

Etapa 5 – Configurando o Arquivo de Hosts Locais (Opcional)

Se você não estiver usando nomes de domínio reais que você possui para testar esse procedimento e estiver usando alguns domínios de exemplo em vez disso, você pode pelo menos testar a funcionalidade desse processo modificando temporariamente o arquivo de hosts em seu computador local.

Isso irá interceptar quaisquer solicitações para os domínios que você configurou e apontá-los para o servidor VPS, assim como o sistema DNS faria se você estivesse usando domínios registrados. Isso só funcionará do seu computador, porém, e só é útil para fins de teste.

Certifique-se de que segue estes passos no seu computador local e não no servidor VPS. Você também precisará saber a senha administrativa do computador local ou ser um membro do grupo administrativo.

Se você estiver em um computador Mac ou Linux, edite seu arquivo local com privilégios administrativos digitando:

  • Sudo nano / etc / hosts

Se você estiver no Windows, abra um prompt de comando com privilégios administrativos e digite:

  • Notepad% windir% \ system32 \ drivers \ etc \ hosts

Depois de ter o arquivo aberto, adicione uma linha que mapeia o endereço IP público do servidor para cada nome de domínio, conforme mostrado no exemplo a seguir:

/ Etc / hosts
 127.0.0.1 localhost ... 111.111.111.111 example.com 111.111.111.111 test.com

Isso example.com todos os pedidos de example.com e example.com no seu example.com e enviá-los para o seu servidor em 111.111.111.111 .

Salve e feche o arquivo. Agora você pode testar sua configuração. Quando você está confiante de que as coisas estão funcionando, remova as duas linhas do arquivo.

Etapa 6 – Testando seus resultados

Agora que você tem seus hosts virtuais configurados, você pode testar sua configuração facilmente indo para os domínios que você configurou em seu navegador da web. Visite o primeiro site em http://example.com e você verá uma página http://example.com esta:

Resultado do Apache example.com

Da mesma forma, se você pode visitar o seu segundo host em http://test.com , você verá o arquivo que você criou para o seu segundo site:

Resultado do Apache test.com

Se ambos os sites funcionarem bem, você configurou com êxito dois hosts virtuais no mesmo servidor.

Nota : Se você ajustou o arquivo hosts do seu computador doméstico como mostrado na Etapa 5, talvez queira excluir as linhas que você adicionou agora que verificou que sua configuração funciona.Isso impedirá que o arquivo de hosts seja preenchido com entradas que não são realmente necessárias.

Conclusão

Agora você tem um único servidor manipulando dois nomes de domínio separados. Você pode expandir esse processo seguindo estas etapas para adicionar hosts virtuais adicionais.

Não há nenhum limite de software no número de nomes de domínio que o Apache pode manipular, então sinta-se livre para fazer quantos o servidor for capaz de lidar.

Para usar o Apache para veicular conteúdo seguro, siga o tutorial Como proteger o Apache com Let’s Encrypt no Debian 8 . Para usar o Apache na frente de seu aplicativo da Web, siga Como usar o Apache como um proxy reverso com mod_proxy no Debian 8 .

Anúncios