Déploiement d'une application C++ sur VPS : guide pas à pas de A à Z

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi C++ sur VPS est moderne et efficace



De nombreux développeurs pensent à tort que l'ère du C++ dans le développement web et le backend est révolue. En réalité, pour les systèmes à forte charge, les serveurs de jeux, les applications financières et les solutions IoT, le C++ reste le langage numéro un en termes de performances. Déployer une application C++ sur un VPS (Virtual Private Server) est une compétence qui distingue un ingénieur parmi la masse de développeurs travaillant avec des langages interprétés.



Dans cet article, nous allons parcourir le cycle complet : de l'achat du VPS et de la configuration de l'environnement à la compilation de votre projet C++ et à son exécution en tant que service de production. Vous apprendrez à éviter les erreurs typiques et à rendre le processus de déploiement aussi automatisé que possible.



Étape 1 : Préparation du VPS et installation des outils nécessaires



Choix et configuration initiale du serveur

Pour une application C++, vous aurez besoin d'un VPS sous Linux (Ubuntu 22.04 LTS est le choix optimal). Caractéristiques minimales : 1 vCPU, 1 Go de RAM et 10 Go de SSD. Après l'achat du serveur, connectez-vous via SSH :

ssh root@ip_de_votre_serveur


Mettez à jour les paquets système :

apt update && apt upgrade -y


Installation du compilateur et des outils de construction

Pour le C++, nous aurons besoin de g++ (ou clang) et de cmake :

apt install build-essential cmake git -y


Vérifiez l'installation :

g++ --versioncmake --version


Configuration de Git et préparation du dépôt

Si votre projet est hébergé sur GitHub/GitLab, clonez-le sur le serveur :

cd /optgit clone https://github.com/votre-utilisateur/votre-depot.gitcd votre-depot


Étape 2 : Compilation de l'application C++ pour la production



Exemple simple de serveur en C++ (pour le test)

Créons un serveur HTTP minimal en C++ utilisant des sockets. Ce code écoutera sur le port 8080 et répondra "Hello from C++!".

// server.cpp#include <iostream>#include <sys/socket.h>#include <netinet/in.h>#include <unistd.h>#include <cstring>

int main() { int server_fd, new_socket; struct sockaddr_in address; int opt = 1; int addrlen = sizeof(address); char buffer[1024] = {0}; const char *hello = "HTTP/1.1 200 OKContent-Length: 20

Hello from C++!";

// Création du socket if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) { perror("socket failed"); exit(EXIT_FAILURE); }

// Liaison au port 8080 if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) { perror("setsockopt"); exit(EXIT_FAILURE); } address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(8080);

if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) { perror("bind failed"); exit(EXIT_FAILURE); }

if (listen(server_fd, 3) < 0) { perror("listen"); exit(EXIT_FAILURE); }

std::cout << "Server listening on port 8080..." << std::endl;

while (true) { if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) < 0) { perror("accept"); exit(EXIT_FAILURE); } read(new_socket, buffer, 1024); send(new_socket, hello, strlen(hello), 0); close(new_socket); } return 0;}


Compilation avec optimisations

Pour une compilation de production, utilisez les flags d'optimisation :

g++ -O3 -march=native -flto -static -o server server.cpp
  • -O3 — optimisation maximale de la vitesse.
  • -march=native — optimisation pour l'architecture de votre processeur.
  • -flto<

Blogs

Book Recommendations