Fig 1: Virtualhost baseado em IP do Apache.
Nome baseado no virtualhost: No VirtualHost baseado em nome, um servidor Apache possui 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 recebe o endereço IP do servidor Apache. Dependendo do nome de domínio que o cliente usou, o servidor retorna sites diferentes.
Fig 2: Nome do Apache baseado em VirtualHost.
Neste artigo, eu vou mostrar como configurar o nome virtualhost baseado em nome do apache. Eu estarei usando o Ubuntu 18.04 LTS para a demonstração. Mas deve funcionar em qualquer distribuição moderna do Linux com pouca ou nenhuma mudança. Então vamos começar.
Instalando o Apache 2 Web Server:
O Apache 2 Web Server está disponível no repositório oficial do pacote do Ubuntu 18.04 LTS. Portanto, 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 Apache 2 Web Server:
$ sudo apt install apache2
Agora, pressione y e depois pressione continuar.
O servidor da 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 o 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. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.
Se você quiser aprender a configurar o Apache VirtualHost localmente, você pode usar o /etc/hosts Arquivo para resolução de DNS/nome local.
Para configurar a resolução do DNS local, abra o /etc/hosts arquivo com Nano do seguinte modo:
$ sudo nano /etc /hosts
Agora, adicione a linha marcada na captura de tela abaixo ao arquivo. Então aperte + x seguido pela y e Para salvar o arquivo.
Agora, a resolução de nomes 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á o seu próprio public_html/ e Histórico/ diretório também.
Por exemplo, para 3 usuários Bob (Exemplo1.com), Alice (Exemplo2.com), Linda (Exemplo3.com), A estrutura do diretório é a seguinte:
/wwwUma maneira fácil de fazer isso é criar um modelo ou diretório de esqueletos e colocar a estrutura do diretório lá. Em seguida, crie cada usuário usando este diretório esqueleto.
Primeiro, copie o conteúdo do diretório esqueleto padrão /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 forma:
$ cd /etc /skel-www
Em seguida, crie a estrutura de diretório desejada dentro do diretório esqueleto da seguinte forma:
$ 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.
$ eco "Funciona
"| sudo tee www/public_html/index.html
Agora, crie o /www Diretório com o seguinte comando:
$ sudo mkdir /www
Criando usuários:
Agora, você pode criar o usuário prumo para www.Exemplo 1.com o seguinte:
$ sudo userAdd --create-home--home-dir /www /exemplo1.com -Shell
/BIN/BASH-GID WWW-DATA-SKEL/ETC/SKEL-WWW BOB
Da mesma maneira, crie o usuário Alice para www.Exemplo2.com o seguinte:
$ sudo userAdd --create-home--dom-Dir /www /exemplo2.com -Shell /Bin /Bash
--GID WWW-DATA-SKEL /ETC /SKEL-WWW ALICE
Novamente, crie o usuário Linda para www.Exemplo3.com o seguinte:
$ sudo userAdd --create-home--dom-DIR /www /exemplo3.com -Shell /Bin /Bash
--GID www-data--skel /etc /skel-www linda
Aqui, atribuí o grupo principal de cada usuário para www-data. Por padrão, o Apache Server é executado como este grupo. Se eu não tivesse feito isso, o Apache Server não poderá 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.Exemplo2.com) e Linda (www.Exemplo3.com).
O diretório de configuração do site Apache padrão no Ubuntu é /etc/Apache2/sites-Audência.
Agora, navegue até o diretório /etc/apache2/sites-disponível/ do seguinte modo.
$ cd/etc/apache2/sites-disponível/
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 exemplo1.com
Serveralias www.Exemplo 1.com
Documentroot "/www/exemplo1.com/www/public_html "
Opções -FollowSymLinks +Multiviews +Indexes
Allowoverride tudo
Exigir tudo concedido
ErrorLog "/www/exemplo1.com/www/logs/erro.registro"
CustomLog "/www/exemplo1.com/www/logs/acesso.log "Combinado
Nota: Altere os textos em negrito de acordo com sua exigência.
Finalmente, o arquivo de configuração www.exemplo.com.conf deve parecer o seguinte. Imprensa + x seguido por y e Para salvar o arquivo de configuração.
para apenas copiar o arquivo de configuração para prumo (www.Exemplo 1.com.conf) e faça as poucas mudanças são necessárias.
Copiar o arquivo de configuração de prumo para Alice e Linda Com os seguintes comandos:
$ sudo cp -v www.Exemplo 1.com.conf www.Exemplo2.com.conf
$ sudo cp -v www.Exemplo 1.com.conf www.Exemplo3.com.conf
Agora, edite o arquivo de configuração de Alice do seguinte modo:
$ sudo nano www.Exemplo2.com.conf
Agora, mude todas as ocorrências de Exemplo 1 para Exemplo2. Em seguida, salve o arquivo.
Fazer a mesma coisa para Linda.
$ sudo nano www.Exemplo3.com.conf
Mudar todas as ocorrências de Exemplo 1 para Exemplo3 e salve o arquivo.
Ativando as configurações do VirtualHost:
Agora, desative a configuração do site padrão do Apache da seguinte forma:
$ sudo a2dissite 000-default.conf
Agora, ative as configurações do VirtualHost www.Exemplo 1.com.conf, www.Exemplo2.com.conf, www.Exemplo3.com.conf do seguinte modo:
$ sudo a2ensite www.Exemplo 1.com.conf www.Exemplo2.com.conf www.Exemplo3.com.conf
Finalmente, reinicie o serviço Apache da seguinte maneira:
$ sudo systemctl reiniciar apache2
Agora, tente acessar os sites www.Exemplo 1.com, www.Exemplo2.com, www.Exemplo3.com
Como você pode ver, todos esses sites funcionam como esperado.
OBSERVAÇÃO: Eu mudei a página padrão índice.html Para cada sites, para que seja um pouco diferente para cada site para fins de teste. Caso contrário, você não poderá dizer se a configuração do VirtualHost funciona ou não.
Então, é assim que você configura o nome baseado no Apache Virtualhost no Ubuntu 18.04 LTS. Obrigado por ler este artigo.