Apache IP e hosts virtuais baseados em nome explicados

Apache IP e hosts virtuais baseados em nome explicados

Com o uso de hosts virtuais, podemos fazer um httpd Servidor Gerenciar vários sites. Podemos usar hosts virtuais baseados em nomes e nomes; Quais são as diferenças entre eles?

Como o Apache decide o que os hosts virtuais devem ser
usado para responder a um pedido de cliente? Vamos responder a essas perguntas neste
Artigo, continue lendo!

Neste tutorial, você aprenderá:

  • Quais são as diferenças entre IP e hosts virtuais baseados em nome
  • O que é Ouvir diretiva e como é usado
  • Como o Apache decide qual host virtual deve ser usado para responder a uma solicitação
Apache IP e hosts virtuais baseados em nome explicados

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Distribuição Independente
Programas Nenhum software específico é necessário
Outro Familiaridade com o servidor da Web Apache e conceitos básicos HTTP
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

A diretiva "escuta"

A primeira coisa a considerar em consideração é o Ouvir diretivo. Esta diretiva é obrigatória e é necessária para dizer o httpd servidor para quê Porta IP combinação deve ouvir solicitações. Por padrão, o servidor geralmente é configurado para ouvir cada IP na porta 80.

Em /etc/httpd/conf/httpd.conf qual é o principal httpd Arquivo de configuração nos sistemas Fedora/Rhel/Centos, na linha 45, Por exemplo, podemos ler:

Ouça 80 

Como você pode ver, apenas a porta é especificada com o Ouvir diretivo. Como resultado, o servidor ouvirá nessa porta em todos os endereços IP da máquina. Se um endereço for especificado, em vez disso, o servidor ouvirá apenas no fornecido IP: porta combinação.

O Ouvir A diretiva pode ser repetida várias vezes, portanto, é muito fácil especificar várias combinações.

MAIXO VIRTUALHOST



Depois que o servidor estiver configurado para ouvir um endereço ou porta específica, o Apache deve decidir que virtualhost deve ser usado para atender à solicitação do cliente. Antes de ver as etapas envolvidas nesta decisão, vamos ver brevemente como um host virtual é definido.

A diretiva usada para criar e configurar o host virtual é VirtualHost; Ele usa a seguinte sintaxe:

..  

Como podemos observar, cada um VirtualHost Diretiva precisa de um addr; Pode ser especificado como:

  • Um endereço IP, IPv4 ou IPv6 (endereços IPv6 devem ser incluídos entre colchetes);
  • Um nome de domínio totalmente qualificado;
  • A * Wildcard (isso corresponderá a todos os endereços)

Todos os parâmetros e configurações feitos dentro do Tags, são "locais" para esse host virtual específico. Aqui está um exemplo de uma configuração de host virtual:

 Nome do servidor: www.exemplo.com documentroot "/var/www/exemploone"  

Ou, usando um curinga:

 Nome do servidor: www.exemplo.com documentroot "/var/www/exemploone"  

A primeira coisa que o servidor faz é analisar, em ordem, todos os host virtuais e verificar se deles addr corresponde à solicitação. É importante observar que os endereços IP definidos têm prioridade sobre os curingas, que são considerados apenas se não houver correspondências exatas. Neste ponto, podemos ter três casos:

  1. Apenas um host virtual corresponde à solicitação;
  2. Nenhum host virtual corresponde à solicitação;
  3. Host virtual múltiplo corresponde à solicitação;

A primeira resolução de caso é fácil: se a solicitação do cliente corresponder apenas a um host virtual específico, o httpd O servidor responde servindo o conteúdo relacionado a esse host virtual. Nesse caso, falamos sobre Baseado em IP Hosts virtuais.

O segundo caso também é facilmente explicado: se nenhuma configuração virtual do host satisfazer a solicitação do cliente, a configuração padrão do servidor será usada para responder à solicitação. Para configuração padrão, pretendemos tudo definido fora de .

No terceiro caso, vários hosts virtuais correspondem à solicitação do cliente. Quando isso acontece, o servidor deve discriminar dependendo de outro fator que não seja o IP: porta Combinação: o esquema e o nome do host que o host virtual usa para se identificar.



Hosts virtuais baseados em nomes

O servidor examina todos os host virtuais correspondentes em ordem de definição e seleciona qual deve ser usado dependendo do solicitado nome de anfitrião. Isso é chamado de hosts virtuais "baseados em nome". O primeiro host virtual que corresponde à solicitação é usado. Se não houver correspondências, o servidor usa o primeiro definiram VirtualHost como fallback.

A principal vantagem de usar hosts virtuais baseados em nomes é que podemos executar vários sites no mesmo endereço IP. Vamos ver um exemplo de um VirtualHost baseado em nome:

 ServerName www.servidorOne.com documentroot/var/www/serverone  

Desde *: 80 é usado como endereço, o host virtual corresponderá a cada solicitação feita na porta 80. O que faz a diferença neste caso é o Nome do servidor diretivo. Se esta diretiva for omitida, o servidor tentará obter um nome de domínio totalmente qualificado (FQDN) com base no nome do host do sistema operacional.

O servidor verifica se o nome do host especificado na solicitação corresponde ao configurado através do Nome do servidor diretiva, neste caso www.servidorOne.com. Se isso acontecer, o conteúdo especificado com o Documentroot Diretiva é servido ao cliente.

Dentro de uma configuração de host virtual, também é possível definir um ou mais aliases, para combinar com vários nomes de hosts. Isso é realizado usando o Serveralias Diretiva:

 ServerName www.servidorOne.com Serveralias *.servidorOne.com documentroot/var/www/serverone  


Na configuração acima, adicionamos um Serveralias instrução usando um curinga. A configuração agora corresponderá também a todos os subdominados de servidorOne.com.

Hosts virtuais baseados em IP

Hosts virtuais baseados em IP, como já vimos, são basicamente o que o httpd Servidor usa por padrão. Ao usá -los, a capacidade de atender a vários sites é baseada na solicitação do cliente IP: porta combinação.

É por si só que, para usar esse tipo de hosts virtuais, uma máquina deve ter vários endereços de rede. Isso não significa que várias interfaces de rede física sejam necessárias, pois vários endereços podem ser atribuídos à mesma interface (isso é chamado Aliasing IP) e interfaces virtuais também podem ser criadas (quero saber como criar uma interface de rede virtual no Linux?

Dê uma olhada em nosso artigo sobre a criação de interfaces de rede virtual no Linux. Aqui estão dois exemplos de hosts virtuais baseados em IP:

Ouça o nome do servidor 8080: www.exemplo.com documentroot "/var/www/exemploone" servername www.Exampletwo.com documentroot "/var/www/exhpletwo"  

Acima, podemos ver que, mesmo que os dois hosts virtuais tenham o mesmo endereço IP, uma porta diferente é especificada no segundo exemplo: 8080. Para que o servidor seja capaz de ouvir essa porta, usamos o Ouça 8080 diretivo.

Conclusão

Neste tutorial, vimos como os hosts virtuais do Apache funcionam. Aprendemos a diferença entre os hosts virtuais baseados em nomes e como o servidor determina qual configuração deve ser usada para responder a uma solicitação do cliente. Por favor, dê uma olhada na instalação do artigo do Apache se você quiser saber mais sobre como configurar um host virtual do Apache.

Tutoriais do Linux relacionados:

  • Como migrar o Apache para o nginx convertendo o VirtualHosts para…
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Mastering Bash Script Loops
  • Coisas para instalar no Ubuntu 20.04
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Guia de solução de problemas gerais GNU/Linux para iniciantes
  • Como criar uma pilha de lâmpadas à base de docker usando o docker em…
  • Crie redirecionar e reescrever regras para .htaccess no apache…
  • Como gerenciar hosts virtuais dinâmicos com Apache e…
  • Como trabalhar com a API de Rest WooCommerce com Python