Pesquisar

2.2. Configuração do NGINX como um servidor web que fornece diferentes conteúdos para diferentes domínios

download PDF

Por padrão, NGINX atua como um servidor web que fornece o mesmo conteúdo aos clientes para todos os nomes de domínio associados com os endereços IP do servidor. Este procedimento explica como configurar o NGINX:

  • Para atender aos pedidos ao domínio example.com com conteúdo do diretório /var/www/example.com/
  • Para atender aos pedidos ao domínio example.net com conteúdo do diretório /var/www/example.net/
  • Para atender todas as outras solicitações, por exemplo, para o endereço IP do servidor ou para outros domínios associados com o endereço IP do servidor, com conteúdo do diretório /usr/share/nginx/html/

Pré-requisitos

  • O NGINX é instalado como descrito em Seção 2.1, “Instalando e preparando o NGINX”.
  • Os clientes e o servidor web resolvem o domínio example.com e example.net para o endereço IP do servidor web.

    Observe que você deve adicionar manualmente estas entradas ao seu servidor DNS.

Procedimento

  1. Edite o arquivo /etc/nginx/nginx.conf:

    1. Por padrão, o arquivo /etc/nginx/nginx.conf já contém uma configuração "catch-all". Se você eliminou esta parte da configuração, readicione o seguinte bloco server ao bloco http no arquivo /etc/nginx/nginx.conf:

      server {
          listen       80 default_server;
          listen       [::]:80 default_server;
          server_name  _;
          root         /usr/share/nginx/html;
      }

      Estas configurações configuram o seguinte:

      • A diretiva listen define o endereço IP e as portas que o serviço escuta. Neste caso, NGINX escuta na porta 80 tanto em todos os endereços IPv4 como IPv6. O parâmetro default_server indica que o NGINX usa este bloco server como padrão para solicitações correspondentes aos endereços IP e portas.
      • O parâmetro server_name define os nomes dos anfitriões pelos quais este bloco server é responsável. O parâmetro server_name para _ configura o NGINX para aceitar qualquer nome de host para este bloco server.
      • A diretiva root estabelece o caminho para o conteúdo da web para este bloco server.
    2. Acrescentar um bloco similar server para o domínio example.com ao bloco http:

      server {
          server_name  example.com;
          root         /var/www/example.com/;
          access_log   /var/log/nginx/example.com/access.log;
          error_log    /var/log/nginx/example.com/error.log;
      }
      • A diretiva access_log define um arquivo de log de acesso separado para este domínio.
      • A diretiva error_log define um arquivo de registro de erros separado para este domínio.
    3. Acrescentar um bloco similar server para o domínio example.net ao bloco http:

      server {
          server_name  example.net;
          root         /var/www/example.net/;
          access_log   /var/log/nginx/example.net/access.log;
          error_log    /var/log/nginx/example.net/error.log;
      }
  2. Criar os diretórios raiz para ambos os domínios:

    # mkdir -p /var/www/example.com/
    # mkdir -p /var/www/example.net/
  3. Configurar o contexto httpd_sys_content_t em ambos os diretórios raiz:

    # semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
    # restorecon -Rv /var/www/example.com/
    # semanage fcontext -a -t httpd_sys_content_t "/var/www/example.net(/.\*)?"
    # restorecon -Rv /var/www/example.net/

    Estes comandos definem o contexto httpd_sys_content_t nos diretórios /var/www/example.com/ e /var/www/example.net/.

    Note que você deve instalar o pacote policycoreutils-python-utils para executar os comandos restorecon.

  4. Criar os diretórios de log para os dois domínios:

    # mkdir /var/log/nginx/example.com/
    # mkdir /var/log/nginx/example.net/
  5. Reinicie o serviço nginx:

    # systemctl restart nginx

Etapas de verificação

  1. Criar um arquivo de exemplo diferente em cada raiz de documento do host virtual:

    # echo "Content for example.com" > /var/www/example.com/index.html
    # echo "Content for example.net" > /var/www/example.net/index.html
    # echo "Catch All content" > /usr/share/nginx/html/index.html
  2. Use um navegador e conecte-se a http://example.com. O servidor web mostra o conteúdo do exemplo do arquivo /var/www/example.com/index.html.
  3. Use um navegador e conecte-se a http://example.net. O servidor web mostra o conteúdo do exemplo do arquivo /var/www/example.net/index.html.
  4. Use um navegador e conecte-se a http://IP_address_of_the_server. O servidor web mostra o conteúdo do exemplo do arquivo /usr/share/nginx/html/index.html.
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.