在VPS上部署C++应用程序:分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在VPS上部署C++应用程序:分步指南



C++开发通常以部署阶段结束——将准备好的应用程序转移到远程服务器(VPS)。与解释型语言不同,C++需要针对目标架构进行编译、正确配置环境并组织自动启动。在本文中,我们将分析完整流程:从准备VPS到使用systemd和Nginx启动生产版本的C++应用程序。



1. 准备VPS并安装必要工具



在部署之前,请确保您的VPS运行Ubuntu 20.04/22.04或Debian 11/12。通过SSH连接:



ssh root@您的服务器IP


更新软件包库并安装g++编译器、CMake构建系统和screen进程管理器(用于调试):



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


检查编译器版本:



g++ --version


如果您使用库(例如Boost、OpenSSL),请提前安装它们:



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


2. 为服务器环境编译C++应用程序



将源代码传输到VPS。最简单的方法是通过Git:



git clone https://github.com/您的仓库/project.gitcd project


创建构建文件夹并使用生产优化进行编译:



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


标志-j$(nproc)通过使用所有CPU核心来加速构建。编译成功后,将出现可执行文件(例如app)。检查其运行情况:



./app


如果应用程序使用配置文件或资源,请将它们复制到二进制文件旁边的文件夹中,或通过argv在代码中设置路径。



3. 通过systemd配置自动启动



为了使应用程序在系统启动时运行并在崩溃时自动重启,请创建一个systemd服务。



创建文件/etc/systemd/system/myapp.service:



nano /etc/systemd/system/myapp.service


插入以下内容(将路径替换为您自己的):



[Unit]Description=我的C++应用程序After=network.target

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

[Install]WantedBy=multi-user.target


参数说明:

  • Restart=always — 在任何终止时重启(除了通过systemctl stop停止)。
  • RestartSec=5 — 重新启动前暂停5秒。
  • Environment — 传递环境变量(例如用于配置)。


激活并启动服务:



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


检查状态:



systemctl status myapp


您应该看到active (running)。如果应用程序崩溃,systemd将在5秒后自动重新启动它。



4. 配置Nginx作为反向代理(可选)



如果您的C++应用程序监听HTTP(例如,在8080端口上的REST API),在其前面放置Nginx进行SSL终止、负载均衡和静态文件服务是很有用的。



安装Nginx:



apt install nginx -y


在/etc/nginx/sites-available/myapp中为您的域名(或IP)创建配置:



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

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

博客

书籍推荐