Fig 1: VirtualHost baseado em IP Apache.
VirtualHost baseado em nome: No VirtualHost baseado em nome, um servidor Apache tem um único endereço IP e vários nomes de domínio configurados para cada site. Em um servidor DNS, cada um desses nomes de domínio são atribuídos ao endereço IP do servidor Apache. Dependendo de qual nome de domínio o cliente usou, o servidor retorna diferentes sites.
Fig 2: VirtualHost baseado em nome Apache.
Neste artigo, vou mostrar como configurar o VirtualHost baseado em nomes Apache. Vou usar o Ubuntu 18.04 LTS para a demonstração. Mas deve funcionar em qualquer distribuição Linux moderna com pouca ou nenhuma mudança. Então vamos começar.
Instalando o Apache 2 Web Server:
O servidor web Apache 2 está disponível no repositório oficial de pacotes do Ubuntu 18.04 LTS. Então, você pode instalá-lo facilmente com o gerenciador de pacotes APT.
Primeiro, atualize o cache do repositório de pacotes APT com o seguinte comando:
$ sudo apt update
Agora, execute o seguinte comando para instalar o servidor da web Apache 2:
$ sudo apt install apache2
Agora aperte y e então pressione
O servidor web Apache 2 deve ser instalado.
Configurando DNS:
Agora, você deve configurar o servidor DNS para mapear os nomes de domínio que deseja usar para VirtualHost para o endereço IP do seu servidor Apache.
Você pode encontrar o endereço IP do seu servidor Apache com o seguinte comando:
$ ip a | egrep "inet"Como você pode ver, o endereço IP no meu caso é 192.168.21.166. Será diferente para você. Portanto, certifique-se de substituí-lo pelo seu a partir de agora.
Se você quiser aprender como configurar o Apache VirtualHost localmente, você pode usar o / etc / hosts arquivo para DNS local / resolução de nomes.
Para configurar a resolução DNS local, abra o / etc / hosts arquivo com nano do seguinte modo:
$ sudo nano / etc / hosts
Agora, adicione a linha marcada na imagem abaixo para o arquivo. Então aperte
Agora, a resolução de nome local deve funcionar.
Estruturas de diretório:
Quero manter todos os dados do site do meu Apache VirtualHost em um diretório específico / www. Aqui, quero criar um diretório para cada usuário. Cada usuário terá seu próprio public_html / e Histórico/ diretório também.
Por exemplo, para 3 usuários bob (exemplo 1.com), Alice (exemplo 2.com), linda (exemplo 3.com), a estrutura do diretório é a seguinte:
/ www- Exemplo 1.com /
- www /
- public_html /
- índice.html
- Histórico/
- exemplo 2.com /
- www /
- public_html /
- índice.html
- Histórico/
- exemplo 3.com /
- www /
- public_html /
- índice.html
- Histórico/
Uma maneira fácil de fazer isso é criar um diretório de modelo ou esqueleto e colocar a estrutura de diretório lá. Em seguida, crie cada usuário usando este diretório esqueleto.
Primeiro, copie o conteúdo do diretório padrão do esqueleto / etc / skel para outro diretório / etc / skel-www do seguinte modo:
$ sudo cp -rv / etc / skel / etc / skel-www
Agora, navegue até o novo diretório esqueleto da seguinte maneira:
$ cd / etc / skel-www
Em seguida, crie a estrutura de diretório desejada dentro do diretório esqueleto da seguinte maneira:
$ sudo mkdir -p www / public_html, logs
Você também pode criar um padrão índice.html arquivo no public_html / diretório se você quiser.
$ echo "Funciona
"| sudo tee www / public_html / index.html
Agora, crie o / www diretório com o seguinte comando:
$ sudo mkdir / www
Criação de usuários:
Agora, você pode criar o usuário prumo para www.Exemplo 1.com o seguinte:
$ sudo useradd --create-home --home-dir / www / example1.com --shell/ bin / bash --gid www-data --skel / etc / skel-www bob
Da mesma forma, crie o usuário Alice para www.exemplo 2.com o seguinte:
$ sudo useradd --create-home --home-dir / www / example2.com --shell / bin / bash--gid www-data --skel / etc / skel-www alice
Novamente, crie a usuária linda para www.exemplo 3.com o seguinte:
$ sudo useradd --create-home --home-dir / www / example3.com --shell / bin / bash--gid www-data --skel / etc / skel-www linda
Aqui, atribuí o grupo primário de cada usuário a www-data. Por padrão, o servidor Apache é executado como este grupo. Se eu não tivesse feito isso, o servidor Apache não seria capaz de acessar os arquivos no public_html / diretório e criar arquivos de log no Histórico/ diretório.
Configurando o Apache VirtualHost:
Agora, você está pronto para configurar o Apache VirtualHost para 3 usuários prumo (www.Exemplo 1.com), Alice (www.exemplo 2.com) e Linda (www.exemplo 3.com).
O diretório padrão de configuração do site Apache no Ubuntu é / etc / apache2 / sites-available.
Agora, navegue até o diretório / etc / apache2 / sites-available / do seguinte modo.
$ cd / etc / apache2 / sites-available /
Primeiro, crie um novo arquivo de configuração para bob www.Exemplo 1.com.conf do seguinte modo:
$ sudo nano www.Exemplo 1.com.conf
Um editor de texto deve ser aberto.
Agora, digite as seguintes linhas.
ServerName example1.comServerAlias www.Exemplo 1.com
DocumentRoot "/ www / exemplo1.com / www / public_html "
Opções -FollowSymLinks + MultiViews + Índices
AllowOverride all
Exigir todos concedidos
ErrorLog "/ www / exemplo1.com / www / logs / error.registro"
CustomLog "/ www / example1.com / www / logs / access.log "combinado
NOTA: Altere os textos em negrito de acordo com sua necessidade.
Finalmente, o arquivo de configuração www.exemplo.com.conf deve ser o seguinte. Aperte
para apenas copiar o arquivo de configuração para prumo (www.Exemplo 1.com.conf) e faça as pequenas mudanças necessárias.
Copie o arquivo de configuração de prumo para Alice e Linda com os seguintes comandos:
$ sudo cp -v www.Exemplo 1.com.conf www.exemplo 2.com.conf$ sudo cp -v www.Exemplo 1.com.conf www.exemplo 3.com.conf
Agora, edite o arquivo de configuração do Alice do seguinte modo:
$ sudo nano www.exemplo 2.com.conf
Agora, mude todas as ocorrências de Exemplo 1 para exemplo 2. Em seguida, salve o arquivo.
Faça a mesma coisa para Linda.
$ sudo nano www.exemplo 3.com.conf
Alterar todas as ocorrências de Exemplo 1 para exemplo 3 e salve o arquivo.
Habilitando configurações de VirtualHost:
Agora, desative a configuração do site padrão do Apache da seguinte maneira:
$ sudo a2dissite 000-default.conf
Agora, habilite as configurações do VirtualHost www.Exemplo 1.com.conf, www.exemplo 2.com.conf, www.exemplo 3.com.conf do seguinte modo:
$ sudo a2ensite www.Exemplo 1.com.conf www.exemplo 2.com.conf www.exemplo 3.com.conf
Por fim, reinicie o serviço Apache da seguinte maneira:
$ sudo systemctl reiniciar apache2
Testando VirtualHosts:
Agora, tente acessar os sites www.Exemplo 1.com, www.exemplo 2.com, www.exemplo 3.com
Como você pode ver, todos esses sites funcionam conforme o esperado.
NOTA: Eu mudei a página padrão índice.html para cada site, de modo que seja um pouco diferente para cada site para fins de teste. Caso contrário, você não será capaz de dizer se a configuração do VirtualHost funciona ou não.
Então, é assim que você configura o Apache VirtualHost baseado em nome no Ubuntu 18.04 LTS. Obrigado por ler este artigo.