Como Fazer o Deploy de Aplicação Web (PHP, Node.js e MariaDB) em um VPS Ubuntu

Aprenda a realizar o deploy de aplicações web com PHP, Node.js e MariaDB em VPS Ubuntu com foco em segurança, Nginx reverse proxy e alta performance.

Migrar ou implantar uma aplicação web existente em um novo servidor VPS frequentemente expõe gargalos operacionais que não apareciam no ambiente de desenvolvimento. O cenário se torna ainda mais delicado quando a aplicação possui uma arquitetura híbrida — combinando, por exemplo, módulos legados ou painéis em PHP, microsserviços ou conexões em tempo real com dispositivos via Node.js, e persistência em MariaDB. Sem uma estratégia clara de configuração de infraestrutura, problemas com permissões de arquivos, conflitos de portas, falta de isolamento e quedas inesperadas de serviços passam a comprometer a estabilidade do sistema.

Para garantir que essa transição ocorra de forma previsível e segura, é indispensável estabelecer uma arquitetura de servidor robusta antes de mover qualquer linha de código.

1. Hardening Inicial do Servidor Ubuntu

Antes de instalar interpretadores ou gerenciadores de banco de dados, o sistema operacional precisa de uma camada mínima de segurança:

  • Acesso SSH por Chaves: Desative a autenticação por senha no /etc/ssh/sshd_config e crie um usuário com privilégios sudo, evitando o uso direto do usuário root.
  • Firewall Estruturado (UFW): Mantenha abertas estritamente as portas essenciais (SSH, HTTP 80 e HTTPS 443). Portas de bancos de dados (3306) ou servidores internos Node.js nunca devem ser expostas publicamente.

2. Arquitetura com Nginx como Reverse Proxy

Em arquiteturas que integram PHP e Node.js no mesmo servidor, o Nginx atua como o ponto único de entrada (Reverse Proxy):

  • Requisições PHP: Encaminhadas diretamente para o socket do PHP-FPM (ex: /run/php/php8.2-fpm.sock), garantindo baixo consumo de memória e rápida execução de scripts síncronos.
  • Requisições Node.js: Roteadas internamente via diretiva proxy_pass http://127.0.0.1:3000. Essa abordagem protege a aplicação Node.js de ataques diretos e delega a terminação SSL/TLS (Let’s Encrypt) e a entrega de arquivos estáticos exclusivamente ao Nginx.

3. Persistência Segura com MariaDB

A configuração do MariaDB exige a execução do script mariadb-secure-installation para remover bases de teste e usuários anônimos. Crie um banco específico e um usuário com permissões restritas àquela base, operando apenas via localhost. Além disso, alinhe os conjuntos de caracteres (utf8mb4) para evitar inconsistências em dados de telemetria ou comunicação entre dispositivos.

4. Gestão de Ciclo de Vida do Node.js com PM2

Aplicações Node.js responsáveis por sockets ou processamento contínuo de dispositivos não devem ser executadas diretamente via terminal. O uso do PM2 (ou serviços nativos do systemd) é mandatório para:

  • Reinicialização automática em caso de falhas ou reboot do VPS.
  • Gerenciamento e rotação de logs de erro e saída.
  • Execução em modo cluster, otimizando o uso dos núcleos da CPU.

Em sistemas que desenvolvo, costumo padronizar esse ecossistema encapsulando as variáveis de ambiente em arquivos protegidos com permissões 600, impedindo que credenciais de banco ou chaves de API fiquem acessíveis a outros processos do sistema.

Fluxo Recomendado de Implantação

  1. Provisionamento do Sistema: Atualização de pacotes do Ubuntu (apt update && apt upgrade) e configuração de timezone e locale.
  2. Instalação das Stacks: Configuração do Nginx, PHP-FPM com suas extensões obrigatórias, Node.js (via NodeSource ou NVM para produção) e MariaDB.
  3. Carga e Migração do Banco: Importação dos dumps de banco de dados e execução de migrations estruturadas.
  4. Configuração de Virtual Hosts e SSL: Criação dos blocos de servidor no Nginx e emissão automatizada de certificados com Certbot.
  5. Validação e Monitoramento: Verificação de consumo de memória, status dos sockets e logs em tempo real.

Se a sua empresa precisa migrar, estruturar ou otimizar o deploy de aplicações web em servidores dedicados ou VPS, uma consultoria técnica especializada garante que a transição ocorra sem downtime e com padrões sólidos de segurança. Entre em contato para avaliar a infraestrutura ideal para o seu projeto.

Preencha o formulário abaixo para que eu consiga entrar em contato com você.