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
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.