Como Mover a Raiz Web do Nginx para uma Nova Localização no Ubuntu 22.04

Introdução

No Ubuntu, o servidor web Nginx armazena seus documentos em /var/www/html, que geralmente está localizado no sistema de arquivos raiz junto com o restante do sistema operacional. Às vezes, no entanto, é útil mover a raiz do documento para outro local, como um sistema de arquivos montado separado. Por exemplo, se você servir vários sites a partir da mesma instância do Nginx, colocar a raiz do documento de cada site em seu próprio volume permite escalar em resposta às necessidades de um site ou cliente específico.

Neste guia, você irá mover uma raiz de documento do Nginx para um novo local.

Pré-requisitos

Para completar este guia, você precisará de:

Neste tutorial, usaremos o nome de domínio seu_domínio, mas você deve substituir isso pelo seu próprio nome de domínio.

  • A new location for your document root. In this tutorial, we will use the /mnt/volume-nyc3-01 directory for our new location. If you are using Block Storage on DigitalOcean, this guide will show you how to create and attach your volume. Your new document root location is configurable based on your needs, however. If you are moving your document root to a different storage device, you will want to select a location under the device’s mount point.

Passo 1 — Copiando Arquivos para o Novo Local

Numa instalação nova do Nginx, a raiz do documento está localizada em /var/www/html. Seguindo os guias pré-requisitos, no entanto, você criou uma nova raiz de documento, /var/www/seu_domínio/html. Você pode ter raízes de documentos adicionais também. Neste passo, vamos estabelecer a localização de nossas raízes de documentos e copiar os arquivos relevantes para sua nova localização.

Você pode pesquisar a localização de suas raízes de documentos usando grep. Vamos pesquisar no diretório /etc/nginx/sites-enabled para limitar nosso foco aos sites ativos. A bandeira -R garante que o grep imprimirá tanto a linha com a diretiva root quanto o nome completo do arquivo em sua saída:

  1. grep -R "root" /etc/nginx/sites-enabled

Se você seguiu os tutoriais pré-requisitos em um servidor novo, o resultado parecerá com isto:

Output
/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html; /etc/nginx/sites-enabled/default: root /var/www/html; /etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root /etc/nginx/sites-enabled/default:# root /var/www/your_domain;

Se você tiver configurações pré-existentes, seus resultados podem diferir do que é mostrado aqui. Em qualquer caso, você pode usar o feedback do grep para garantir que está movendo os arquivos desejados e atualizando os arquivos de configuração apropriados.

Agora que você confirmou a localização da sua raiz do documento, você pode copiar os arquivos para sua nova localização com rsync. Usando a bandeira -a preserva as permissões e outras propriedades do diretório, enquanto -v fornece uma saída detalhada para que você possa acompanhar o progresso da sincronização:

Nota: Certifique-se de que não há uma barra final no diretório, que pode ser adicionada se você usar a conclusão por tabulação. Quando houver uma barra final, o rsync irá despejar o conteúdo do diretório no ponto de montagem em vez de transferi-lo para um diretório html contendo.

  1. sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01

Você verá uma saída como a seguinte:

Output
sending incremental file list created directory /mnt/volume-nyc3-01 html/ html/index.html sent 318 bytes received 39 bytes 714.00 bytes/sec total size is 176 speedup is 0.49

Com nossos arquivos no lugar, vamos prosseguir com a modificação da nossa configuração do Nginx para refletir essas alterações.

Passo 2 — Atualizando os Arquivos de Configuração

O Nginx faz uso de arquivos de configuração globais e específicos do site. Vamos modificar o arquivo de bloco de servidor para o nosso projeto seu_domínio: /etc/nginx/sites-enabled/seu_domínio.

Nota: Lembre-se de substituir seu_domínio pelo nome do seu domínio, e lembre-se de que você estará modificando os arquivos de bloco de servidor que foram gerados quando você executou o comando grep no Passo 1.

Comece abrindo /etc/nginx/sites-enabled/seu_domínio em um editor:

  1. sudo nano /etc/nginx/sites-enabled/your_domain

Encontre a linha que começa com root e atualize-a com a nova localização raiz. No nosso caso, isso será /mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/your_domain
server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

Mantenha-se atento a quaisquer outros lugares onde você veja o caminho raiz do documento original sendo exibido pelo grep no Passo 1, incluindo em aliases ou rewrites. Você também vai querer atualizar esses para refletir a nova localização do documento raiz.

Quando você fez todas as mudanças necessárias, salve e feche o arquivo.

Passo 3 — Reiniciando o Nginx

Depois de terminar de fazer as mudanças na configuração, você pode reiniciar o Nginx e testar os resultados.

Primeiro, certifique-se de que a sintaxe está correta:

  1. sudo nginx -t

Se tudo estiver em ordem, deverá retornar:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Se o teste falhar, localize e corrija os problemas.

Assim que o teste passar, reinicie o Nginx:

  1. sudo systemctl restart nginx

Quando o servidor tiver reiniciado, visite seus sites afetados e certifique-se de que estão funcionando conforme o esperado. Depois de se certificar de que tudo está em ordem, não se esqueça de remover a cópia original dos dados:

  1. sudo rm -Rf /var/www/your_domain/html

Agora você moveu com sucesso o documento raiz do Nginx para uma nova localização.

Conclusão

Neste tutorial, cobrimos como alterar a raiz do documento Nginx para uma nova localização. Isso pode ajudá-lo na administração básica do servidor web, como gerenciar efetivamente vários sites em um único servidor. Também permite que você aproveite dispositivos de armazenamento alternativos, como armazenamento de blocos de rede, o que pode ser útil para dimensionar um site à medida que suas necessidades mudam.

Se você estiver gerenciando um site movimentado ou em crescimento, pode estar interessado em aprender como configurar o Nginx com HTTP/2 para aproveitar sua alta velocidade de transferência de conteúdo.

Source:
https://www.digitalocean.com/community/tutorials/how-to-move-an-nginx-web-root-to-a-new-location-on-ubuntu-22-04