Como implantar um aplicativo React com Nginx no Ubuntu

Como implantar um aplicativo React com Nginx no Ubuntu

Introdução

React é um framework JavaScript de código aberto usado para construir interfaces de usuário responsivas e eficientes. Nginx é um servidor web de alto desempenho e proxy reverso comumente usado para implantar aplicativos web. Ubuntu é um sistema operacional Linux popular conhecido por sua estabilidade e suporte a aplicativos de última geração.

Este tutorial fornecerá um guia passo a passo sobre como implantar um aplicativo React com Nginx no Ubuntu. Vamos cobrir a instalação e configuração de todos os componentes necessários, além de estratégias de implantação para alterações no código.

Pré-requisitos

* Um servidor Ubuntu 20.04 ou posterior
* Acesso root ou sudo
* Node.js e npm instalados
* Um aplicativo React criado

Etapa 1: Instalar o Node.js e o npm

Se o Node.js e o npm ainda não estiverem instalados, execute os seguintes comandos:

sh
sudo apt update
sudo apt install nodejs npm

Verifique a versão instalada:

sh
node -v
npm -v

Etapa 2: Instalar o aplicativo React

Navegue até o diretório onde deseja armazenar o aplicativo React:

sh
cd ~/my-app

Inicialize um novo projeto React:

sh
npx create-react-app client

Etapa 3: Instalar o Nginx

  Quer criar uma startup Femtech? Aqui está como

Para instalar o Nginx, execute o seguinte comando:

sh
sudo apt install nginx

Ative e inicie o Nginx:

sh
sudo systemctl enable nginx
sudo systemctl start nginx

Etapa 4: Configurar o Nginx

Abra o arquivo de configuração do Nginx:

sh
sudo nano /etc/nginx/sites-available/default

Adicione a seguinte configuração ao arquivo, substituindo my-app pelo nome do diretório do seu aplicativo React:


server {
listen 80;
listen [::]:80;

server_name localhost;

root /home/usuario/my-app/client/build;

location / {
try_files $uri $uri/ /index.html;
}
}

Salve o arquivo e recarregue o Nginx:

sh
sudo systemctl reload nginx

Etapa 5: Construir o aplicativo React

Navegue até o diretório do aplicativo React e execute o seguinte comando para construir o aplicativo:

sh
cd client
npm run build

Isso criará um diretório build com os arquivos de produção do aplicativo React.

Etapa 6: Copiar o diretório de compilação

Copie o diretório build para o diretório raiz do servidor web:

sh
sudo cp -r build /var/www/html/my-app

Etapa 7: Configurar um proxy reverso (opcional)

Para melhorar o desempenho e a segurança, você pode configurar um proxy reverso no Nginx para rotear o tráfego para o aplicativo React.

Abra o arquivo de configuração do Nginx novamente:

sh
sudo nano /etc/nginx/sites-available/default

Adicione a seguinte configuração após o bloco server:


location /api {
proxy_pass http://localhost:3000;
}

Isso configura um proxy reverso para rotear o tráfego na URL /api para a porta 3000, onde o aplicativo React geralmente é executado. Salve o arquivo e recarregue o Nginx.

Estratégias de Implantação

* Implantação contínua: automatize o processo de construção e implantação, permitindo atualizações contínuas sem tempo de inatividade.
* Implantação azul/verde: crie dois ambientes idênticos (azul e verde) e alterne entre eles durante as implantações para minimizar o tempo de inatividade.
* Implantação canária: implante gradualmente atualizações em um pequeno subconjunto de usuários para monitorar o desempenho e a estabilidade antes de uma implantação completa.

Conclusão

Você implantou com sucesso um aplicativo React com Nginx no Ubuntu. Este guia forneceu uma base sólida para implantar e manter seus aplicativos React com eficiência. Ao entender as estratégias de implantação e as melhores práticas de configuração, você pode garantir alto desempenho, estabilidade e segurança para seus aplicativos web.

FAQs

1. Por que usar o Nginx com React?
O Nginx é um servidor web de alto desempenho que pode melhorar o desempenho e a segurança dos aplicativos React.

2. Como atualizo meu aplicativo React implantado?
Construa o novo código do aplicativo React e copie o diretório build para o servidor web.

3. Como configuro um domínio personalizado para meu aplicativo?
Edite o arquivo /etc/nginx/sites-available/default e atualize o campo server_name com seu domínio.

4. Como protejo meu aplicativo implantado?
Configure um certificado SSL, configure o controle de acesso baseado em função e implemente medidas anti-ataque.

5. Como monitoro o desempenho do meu aplicativo implantado?
Use ferramentas como New Relic ou CloudWatch para monitorar métricas de desempenho e identificar gargalos.

6. Como faço o debug de problemas de implantação?
Examine os logs do Nginx e do aplicativo React para identificar erros e exceções.

7. Como migro meu aplicativo de um ambiente de desenvolvimento para um ambiente de produção?
Siga as mesmas etapas de implantação, mas use o ambiente de produção como destino.

8. Como faço backup do meu aplicativo implantado?
Regularmente, faça backup do diretório do aplicativo e do banco de dados associado (se houver).

9. Como automatizo o processo de implantação?
Use ferramentas como Jenkins ou CircleCI para automatizar a construção, o teste e o processo de implantação.

10. Como otimizo meu aplicativo React para implantação?
Use técnicas de agrupamento de código, minimize o tamanho do pacote e implemente carregamento sob demanda para melhorar o desempenho da implantação.