Como configurar hosts virtuais baseados em nomes e baseados em IP (blocos de servidor) com nginx

Como configurar hosts virtuais baseados em nomes e baseados em IP (blocos de servidor) com nginx

Em um período relativamente curto, desde que foi desenvolvido e disponibilizado (pouco mais de 10 anos), Nginx experimentou um crescimento sustentado e constante entre servidores da Web devido ao seu alto desempenho e baixo uso de memória.

Nginx baseado em nome e hospedagem virtual baseada em IP

Desde Nginx é software gratuito e de código aberto, ele foi adotado por milhares de administradores de servidores da web em todo o mundo, não apenas nos servidores Linux e *Nix, mas também no Microsoft Windows.

Não perca: Hosting virtual baseado em nomes Apache e baseado em IP

Para aqueles de nós mais acostumados a Apache, Nginx Pode ter uma curva de aprendizado um tanto acentuada (pelo menos esse foi o meu caso), mas certamente vale a pena depois de configurar alguns sites e começar a ver as estatísticas de tráfego e uso de recursos.

Neste artigo, explicaremos como usar o nginx para configurar baseado em nome e baseado em IP hospedagem virtual em CENTOS/RHEL 7 servidores e Debian 8 e derivados, começando com o Ubuntu 15.04 e seus spin-offs.

Nosso cenário de teste para este artigo é o seguinte:

  1. Sistema operacional: Debian 8 Jessie Server [IP 192.168.0.25]
  2. Porta de entrada: Roteador [IP 192.168.0.1]
  3. Servidor web: Nginx 1.6.2-5
  4. Domínios fictícios: www.Tecmintlovesnginx.com e www.NginxMeanSpower.com.

Instalando o Nginx Web Server

Se você ainda não fez isso, instale o nginx antes de prosseguir. Se você precisar de ajuda para começar, uma pesquisa rápida pelo NGINX neste site retornará vários artigos sobre este tópico. Clique no ícone da lupa na parte superior desta página e procure palavras -chave nginx. Se você não sabe como procurar artigos neste site, não se preocupe aqui, adicionamos links aos artigos nginx, basta passar e instalá -lo de acordo com suas respectivas distribuições Linux.

  1. Instale e compilar Nginx de fontes no RHEL/CENTOS 7
  2. Instale o Nginx Web Server no Debian 8
  3. Instale o nginx com mariadb e php/php-fpm no fedora 23
  4. Instale o Nginx Web Server no Ubuntu 15.10 servidor/desktop
  5. Senha Proteger diretórios de sites Nginx

Em seguida, prepare -se para continuar com o restante deste tutorial.

Criando hosts virtuais baseados em nomes no Nginx

Como tenho certeza que você já sabe, um host virtual é um site servido pelo Nginx em um único VPS em nuvem ou servidor físico. No entanto, nos documentos nginx, você encontrará o termo "Bloco de servidor" Em vez disso, mas eles são basicamente a mesma coisa chamada por nomes diferentes.

A primeira etapa para configurar hosts virtuais é criar um ou mais blocos de servidores (no nosso caso, criaremos dois, um para cada domínio dummy) no arquivo de configuração principal (/etc/nginx/nginx.conf) ou dentro /etc/nginx/sites disponíveis.

Embora o nome dos arquivos de configuração neste diretório (Sites disponíveis) pode ser definido como o que você quiser, é uma boa ideia usar o nome dos domínios e, além disso, escolhemos adicionar o .conf extensão para indicar que esses são arquivos de configuração.

Esses blocos de servidores podem ser relativamente complexos, mas em sua forma básica consistem no seguinte conteúdo:

Em /etc/nginx/sites-Available/tecmintlovesnginx.com.conf:

servidor ouça 80; server_name tecmintlovesnginx.com www.Tecmintlovesnginx.com; access_log/var/www/logs/tecmintlovesnginx.acesso.registro; error_log/var/www/logs/tecmintlovesnginx.erro.erro de log; root/var/www/tecmintlovesnginx.com/public_html; ÍNDICE ÍNDICE.Índice HTML.htm;  

Em /etc/nginx/sites-disponível/nginxmeanSpower.com.conf:

servidor ouça 80; server_name nginxmeanSpower.com www.NginxMeanSpower.com; access_log/var/www/logs/nginxmeanSpower.acesso.registro; error_log/var/www/logs/nginxmeanSpower.erro.erro de log; raiz/var/www/nginxmeanSpower.com/public_html; ÍNDICE ÍNDICE.Índice HTML.htm;  

Você pode usar os blocos acima para começar a configurar seus hosts virtuais, ou pode criar os arquivos com o esqueleto básico de /etc/nginx/sites-disponível/padrão (Debian) ou /etc/nginx/nginx.conf.padrão (CENTOS).

Uma vez copiado, mude suas permissões e propriedade:

# CHMOD 660/etc/nginx/sites que estão disponíveis/tecmintlovesnginx.com.conf # chmod 660/etc/nginx/sites-averable/nginxmeanSpower.com.conf 

Debian e derivados

# CHGRP www-data/etc/nginx/sites-averable/tecmintlovesnginx.com.conf # chggrp www-data/etc/nginx/sites-averable/nginxmeanSpower.com.conf 

CENTOS e RHEL

# chgrp nginx/etc/nginx/sites-averable/tecmintlovesnginx.com.conf # chggrp nginx/etc/nginx/sites-averable/nginxmeanSpower.com.conf 

Quando terminar, você deve excluir o arquivo de amostra ou renomeá -lo para outra coisa para evitar confusão ou conflitos.

Observe que você também precisará criar o diretório para os logs (/var/www/logs) e dê ao usuário nginx (nginx ou www-data, dependendo de você estar executando o CentOS ou o Debian) Leia e escreva permissões sobre ele:

# mkdir/var/www/logs # chmod -r 660/var/www/logs # chgrp/var/www/logs 

Os hosts virtuais devem agora ser ativados criando um symlink para este arquivo no diretório habilitado para sites:

# ln -s/etc/nginx/sites -anicleable/tecmintlovesnginx.com.Conf/etc/nginx/sites-inabled/tecmintlovesnginx.com.conf # ln -s/etc/nginx/sites -averable/nginxmeanSpower.com.Conf/etc/nginx/sites-inabled/nginxmeanSpower.com.conf 

Em seguida, crie um exemplo de arquivo HTML nomeado índice.html dentro /var/www // public_html para cada um dos hosts virtuais (substitua como necessário). Modifique o seguinte código conforme necessário:

    Tecmint adora nginx   

Tecmint adora nginx!

Por fim, teste a configuração do NGINX e inicie o servidor da web. Se houver algum erro na configuração, você será solicitado a corrigi -los:

# nginx -t && SystemCtl Iniciar nginx 
Verifique a configuração do nginx

e adicione as seguintes entradas ao seu /etc/hosts Arquivo em sua máquina local como uma estratégia básica de resolução de nomes:

192.168.0.25 tecmintlovesnginx.com 192.168.0.25 NginxmeanSpower.com 

Em seguida, inicie um navegador da web e vá para os URLs listados acima:

Verifique os hosts virtuais baseados em nome nginx

Para adicionar mais hosts virtuais no Nginx, basta repetir as etapas descritas acima quantas vezes forem necessárias.

Hosts virtuais baseados em IP no Nginx

Em oposição a baseado em nome Hosts virtuais onde todos os hosts são acessíveis através do mesmo endereço IP, Baseado em IP Os hosts virtuais requerem um diferente IP: porta combinação cada.

Isso permite que o servidor da web retorne sites diferentes, dependendo do endereço IP e da porta onde a solicitação é recebida. Como os hosts virtuais baseados no nome nos dão a vantagem de compartilhar um endereço IP e uma porta, eles são o padrão para servidores da Web de uso geral e devem ser a configuração de escolha, a menos que sua versão instalada do NGINX não suporta Indicação do nome do servidor (Sni), ou porque é uma versão realmente desatualizada, ou porque foi compilada sem o -com http_sssl_module opção de compilação.

Se,

# nginx -v 

não retorna as opções destacadas abaixo:

Verifique a versão e módulos nginx

Você precisará atualizar sua versão do Nginx ou recompilá -la, dependendo do seu método de instalação original. Para compilar Nginx, siga o artigo abaixo:

  1. Instale e compilar Nginx de fontes no RHEL/CENTOS 7

Supondo que estamos prontos para ir, precisamos observar que outro pré -requisito para Baseado em IP Hosts virtuais é a disponibilidade de IPs separados - atribuindo -os a interfaces de rede distintas ou através do uso de IPs virtuais (também conhecidos como alias de IP).

Para realizar o alias de IP em Debian (assumindo que você está usando eth0), editar /etc/rede/interfaces do seguinte modo:

Debian e derivados

Auto eth0: 1 iface eth0: 1 endereço estático INET 192.168.0.25 máscara de rede 255.255.255.0 Rede 192.168.0.0 Broadcast 192.168.0.255 Gateway 192.168.0.1 AUTO ETH0: 2 IFACE ETH0: 2 Endereço estático INET 192.168.0.26 NetMask 255.255.255.0 Rede 192.168.0.0 Broadcast 192.168.0.255 Gateway 192.168.0.1 

No exemplo acima, criamos duas NICs virtuais fora de eth0: eth0: 1 (192.168.0.25) e eth0: 2 (192.168.0.26).

CENTOS e RHEL

Em Centos, renomeie /etc/sysconfig/network-scripts/ifcfg-enp0s3 como ifcfg-enp0s3: 1 e fazer uma cópia como IFCFG-ENP0S3: 2, E então basta alterar as seguintes linhas, respectivamente:

Dispositivo = "ENP0S3: 1" ipaddr = 192.168.0.25 

e

Dispositivo = "ENP0S3: 2" ipaddr = 192.168.0.26 

Uma vez feito, reinicie o serviço de rede:

# SystemCTL Reiniciar rede 

Em seguida, faça as seguintes alterações nos blocos de servidor previamente definidos neste artigo:

Em /etc/nginx/sites-Available/tecmintlovesnginx.com.conf:

Ouça 192.168.0.25:80 

Em /etc/nginx/sites-disponível/nginxmeanSpower.com.conf:

Ouça 192.168.0.26:80 

Finalmente, reinicie o nginx para que as mudanças entrem em vigor.

# SystemCtl Reiniciar nginx 

E não se esqueça de atualizar seu local /etc/hosts de acordo:

192.168.0.25 tecmintlovesnginx.com 192.168.0.26 NginxMeanSpower.com 

Assim, cada solicitação feita para 192.168.0.25 e 192.168.0.26 na porta 80 retornará Tecmintlovesnginx.com e NginxMeanSpower.com, respectivamente:

Verifique o host virtual baseado em IP nginx

Como você pode ver nas imagens acima, agora você tem dois hosts virtuais baseados em IP usando a única NIC em seu servidor com dois aliases de IP diferentes.

Resumo

Neste tutorial, explicamos como configurar os dois baseado em nome e Baseado em IP Hosts virtuais no nginx. Embora você provavelmente deseje usar a primeira opção, é importante saber que a outra opção ainda está lá se você precisar - basta tomar essa decisão depois de considerar os fatos descritos neste guia.

Além disso, você pode querer marcar os documentos nginx, pois é digno e bom se referir a eles com frequência enquanto cria blocos de servidores (aí está - estamos falando na linguagem nginx agora) e configurando -os. Você não vai acreditar em todas as opções disponíveis para configurar e sintonizar este excelente servidor da web.

Como sempre, não hesite em nos deixar uma linha usando o formulário abaixo se tiver alguma dúvida ou comentário sobre este artigo. Estamos ansiosos para ouvir de você, e seus comentários sobre este guia são bem -vindos.