Despliegue de una aplicación C++ en VPS: guía paso a paso
Desarrollar en C++ es solo la mitad del trabajo. Para que su aplicación esté disponible para los usuarios, debe implementarla en un servidor. En este artículo, analizaremos en detalle el proceso de implementación de una aplicación C++ en un VPS (Servidor Privado Virtual) que ejecuta Linux. Aprenderá cómo preparar el servidor, compilar el código, configurar el inicio automático y garantizar la seguridad. El material está dirigido a desarrolladores familiarizados con los conceptos básicos de C++ y Linux.
1. Preparación del VPS e instalación de las herramientas necesarias
Antes de cargar el código, asegúrese de que su VPS esté listo para funcionar. Usaremos Ubuntu 22.04 LTS (o más reciente), la distribución más estable y popular para servidores web.
1.1. Conexión al servidor
Después de comprar un VPS, recibirá una dirección IP, un nombre de usuario (generalmente root) y una contraseña. Conéctese a través de SSH:
ssh root@su_IP_del_servidorPor seguridad, se recomienda crear un usuario separado y deshabilitar el inicio de sesión como root, pero para la primera implementación puede trabajar como root.
1.2. Actualización del sistema e instalación del compilador
Actualicemos el gestor de paquetes e instalemos las herramientas necesarias para compilar C++:
apt update && apt upgrade -yapt install build-essential cmake git -y- build-essential — conjunto de compiladores (g++, gcc) y utilidades.
- cmake — sistema de compilación que simplifica la compilación.
- git — para clonar el repositorio.
Verifique la instalación:
g++ --versioncmake --version2. Compilación y construcción de la aplicación C++
Supongamos que su aplicación está en un repositorio Git. Vamos a clonarla en el servidor y construirla.
2.1. Clonación del repositorio
cd /optgit clone https://github.com/su_usuario/su_aplicacion.gitcd su_aplicacionSe recomienda colocar los proyectos en el directorio /opt o /var/www, no en la carpeta de inicio.
2.2. Construcción con CMake
Creemos un directorio separado para la compilación y ejecutemos CMake:
mkdir build && cd buildcmake ..make -j$(nproc)La bandera -j$(nproc) acelera la compilación utilizando todos los núcleos de la CPU. Después de una compilación exitosa, el archivo ejecutable aparecerá en la carpeta build.
2.3. Prueba de la aplicación
Ejecute la aplicación manualmente para asegurarse de que funciona:
./su_aplicacionSi la aplicación es un servidor HTTP, pruébela con curl:
curl http://localhost:80803. Configuración del inicio automático con systemd
Para que la aplicación se inicie automáticamente al arrancar el servidor y se reinicie en caso de fallo, crearemos un servicio systemd.
3.1. Creación del archivo unit
Cree el archivo /etc/systemd/system/myapp.service:
nano /etc/systemd/system/myapp.serviceInserte el siguiente contenido (reemplace las rutas y el nombre de usuario):
[Unit]Description=My C++ ApplicationAfter=network.target
[Service]ExecStart=/opt/su_aplicacion/build/su_aplicacionWorkingDirectory=/opt/su_aplicacion/buildRestart=alwaysRestartSec=5User=www-dataGroup=www-data
[Install]WantedBy=multi-user.target- ExecStart — ruta completa al archivo ejecutable.
- Restart=always — reinicio automático en caso de fallo.
- User/Group — se recomienda usar un usuario sin privilegios (por ejemplo,
www-data).
3.2. Inicio del servicio
systemctl daemon-reloadsystemctl enable myapp.servicesystemctl start myapp.serviceVerifique el estado:
sys