Como Mover uma 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, porém, é ú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 dimensionar em resposta às necessidades de um site ou cliente específico.

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

Pré-requisitos

Para completar este guia, você precisará de:

Vamos usar o nome de domínio seu_domínio neste tutorial, mas você deve substituí-lo 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 a Nova Localização

Em uma instalação fresca do Nginx, o diretório raiz do documento está localizado em /var/www/html. No entanto, seguindo os guias pré-requisitos, você criou um novo diretório raiz do documento, /var/www/seu_domínio/html. Você pode ter diretórios raiz adicionais também. Neste passo, vamos estabelecer a localização dos nossos diretórios raiz do documento e copiar os arquivos relevantes para sua nova localização.

Você pode pesquisar a localização dos seus diretórios raiz do documento usando o grep. Vamos pesquisar no diretório /etc/nginx/sites-enabled para limitar nosso foco aos sites ativos. A flag -R garante que o grep imprima tanto a linha com a diretiva root quanto o nome do arquivo completo 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 será semelhante a 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 retorno do grep para garantir que esteja movendo os arquivos desejados e atualizando os arquivos de configuração apropriados.

Agora que você confirmou a localização do seu diretório raiz do documento, pode copiar os arquivos para sua nova localização com o rsync. Usando a flag -a, são preservadas 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 há uma barra final, rsync irá despejar o conteúdo do diretório no ponto de montagem em vez de transferi-lo para um diretório html contido.

  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 seguir para a modificação da nossa configuração Nginx para refletir essas alterações.

Passo 2 — Atualizando os Arquivos de Configuração

O Nginx faz uso tanto de arquivos de configuração globais quanto específicos do site. Vamos modificar o arquivo de bloco do 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 do servidor que foram produzidos 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;
        . . .
}
. . .

Fique atento a qualquer outro lugar onde você veja o caminho raiz do documento original sendo exibido pelo grep no Passo 1, incluindo em aliases ou reescritas. Você também vai querer atualizar esses para refletir a nova localização do documento raiz.

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

Passo 3 — Reiniciando o Nginx

Depois de terminar de fazer as alterações 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, deve 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 for reiniciado, visite seus sites afetados e certifique-se de que eles estejam funcionando como esperado. Quando estiver confortável 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

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

Conclusão

Neste tutorial, cobrimos como alterar a raiz do documento do 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 bloco de rede, o que pode ser útil para dimensionar um site à medida que suas necessidades mudam.

Se você está gerenciando um site ocupado 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