Implantação de aplicação C++ em VPS: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
Here is the translated HTML content in Portuguese (Português), with all HTML tags preserved and only the text content translated. ```html

Implantação de aplicação C++ em VPS: guia passo a passo



O desenvolvimento em C++ frequentemente termina com a etapa de implantação — transferência da aplicação pronta para um servidor remoto (VPS). Diferente de linguagens interpretadas, C++ requer compilação para a arquitetura alvo, configuração correta do ambiente e organização da inicialização automática. Neste artigo, vamos abordar o ciclo completo: desde a preparação do VPS até a execução da versão de produção de uma aplicação C++ usando systemd e Nginx.



1. Preparação do VPS e instalação das ferramentas necessárias



Antes da implantação, certifique-se de que seu VPS está rodando Ubuntu 20.04/22.04 ou Debian 11/12. Conecte-se via SSH:



ssh root@seu-ip-do-servidor


Atualize a base de pacotes e instale o compilador g++, o sistema de build CMake e o gerenciador de processos screen (para depuração):



apt update && apt upgrade -yapt install build-essential cmake screen git -y


Verifique a versão do compilador:



g++ --version


Se você usa bibliotecas (por exemplo, Boost, OpenSSL), instale-as antecipadamente:



apt install libboost-all-dev libssl-dev -y


2. Compilação da aplicação C++ para o ambiente do servidor



Transfira o código-fonte para o VPS. A maneira mais simples é via Git:



git clone https://github.com/seu-repositorio/project.gitcd project


Crie uma pasta de build e execute a compilação com otimizações para produção:



mkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemake -j$(nproc)


A flag -j$(nproc) acelera a compilação usando todos os núcleos da CPU. Após a compilação bem-sucedida, um arquivo executável será gerado (por exemplo, app). Verifique seu funcionamento:



./app


Se a aplicação usa arquivos de configuração ou recursos, copie-os para a pasta ao lado do binário ou configure os caminhos no código via argv.



3. Configuração da inicialização automática via systemd



Para que a aplicação inicie junto com o sistema e reinicie automaticamente em caso de falhas, crie um serviço systemd.



Crie o arquivo /etc/systemd/system/myapp.service:



nano /etc/systemd/system/myapp.service


Insira o seguinte conteúdo (substitua os caminhos pelos seus):



[Unit]Description=My C++ ApplicationAfter=network.target

[Service]ExecStart=/root/project/build/appWorkingDirectory=/root/project/buildRestart=alwaysRestartSec=5User=rootGroup=rootEnvironment="APP_ENV=production"

[Install]WantedBy=multi-user.target


Explicação dos parâmetros:

  • Restart=always — reinicia em qualquer término (exceto quando parado via systemctl stop).
  • RestartSec=5 — pausa de 5 segundos antes de reiniciar.
  • Environment — passagem de variáveis de ambiente (por exemplo, para configuração).


Ative e inicie o serviço:



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


Verifique o status:



systemctl status myapp


Você deve ver active (running). Se a aplicação falhar, o systemd a reiniciará automaticamente após 5 segundos.



4. Configuração do Nginx como proxy reverso (opcional)



Se sua aplicação C++ escuta HTTP (por exemplo, uma API REST na porta 8080), é útil colocar o Nginx na frente para terminação SSL, balanceamento e conteúdo estático.



Instale o Nginx:



apt install nginx -y


Crie a configuração para seu domínio (ou IP) em /etc/nginx/sites-available/myapp:



server {    listen 80;    server_name your-domain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header H ```

Blogs

Book Recommendations