1. 安装Rust工具链
在Linux环境下部署Rust项目前,需先安装Rust编译器(rustc
)及包管理器(Cargo
)。推荐使用rustup
(Rust官方工具链管理工具)进行安装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
,按提示完成安装;source $HOME/.cargo/env
;rustc --version
(显示版本号则表示安装成功)。sudo apt install cargo
),但rustup
能更方便地管理工具链版本。2. 构建Rust项目
进入项目根目录(包含Cargo.toml
配置文件的目录),使用cargo
构建项目:
cargo build
,生成的可执行文件位于target/debug/
目录;cargo build --release
,生成的可执行文件位于target/release/
目录。3. 部署可执行文件到服务器
将构建好的可执行文件从本地复制到目标Linux服务器,常用工具包括scp
(安全复制)、rsync
(增量同步):
scp
):scp target/release/your_project_name user@server_ip:/path/to/deploy
(替换为实际用户名、服务器IP及部署路径);chmod +x /path/to/deploy/your_project_name
(确保文件可运行)。4. 配置服务器运行环境
openssl
、libpq
),需提前在服务器上安装。可通过ldd target/release/your_project_name
查看动态链接库依赖,使用包管理器(如apt
、yum
)安装缺失的依赖;~/.bashrc
)或项目目录下的.env
文件(通过dotenv
crate读取)。5. 运行Rust应用
./your_project_name
,程序会在前台运行(终端关闭则程序终止);nohup
命令让程序在后台持续运行(即使终端关闭也不会停止):nohup ./your_project_name > output.log 2>&1 &
(> output.log
将标准输出重定向到日志文件,2>&1
将错误输出合并到标准输出)。6. 使用systemd管理应用(可选但推荐)
为确保应用随系统启动、崩溃后自动重启,建议使用systemd
创建服务:
sudo nano /etc/systemd/system/your_project.service
;[Unit]
Description=Your Rust Project
After=network.target
[Service]
User=your_user
Group=your_group
ExecStart=/path/to/deploy/your_project_name
Restart=always
Environment="ENV_VAR_NAME=value" # 可选:设置环境变量
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl start your_project # 启动服务
sudo systemctl enable your_project # 设置开机自启动
sudo systemctl status your_project
(确认服务运行正常)。7. 配置防火墙(可选但重要)
若应用需要监听网络端口(如HTTP服务的80/443端口、数据库的5432端口),需配置防火墙允许流量通过:
ufw
(Ubuntu默认防火墙):sudo ufw allow 80/tcp
(允许TCP协议的80端口);firewalld
(CentOS默认防火墙):sudo firewall-cmd --permanent --add-port=80/tcp
(永久添加端口),sudo firewall-cmd --reload
(重新加载配置)。8. 监控与维护
journalctl
查看systemd服务日志(sudo journalctl -u your_project -f
,-f
表示实时跟踪),或查看应用自身的日志文件(如output.log
);htop
(查看CPU/内存占用)、iotop
(查看磁盘IO)等工具监控系统资源;git pull
更新代码,再执行cargo build --release
)。可选:跨平台编译与打包
rustup target add x86_64-unknown-linux-gnu
),并使用cross
工具简化流程(cross build --target x86_64-unknown-linux-gnu
);cargo-deb
(生成Debian包,.deb
)、cargo-rpm
(生成RPM包,.rpm
)等工具将项目打包,便于在其他Linux系统上安装(如cargo deb --release
生成.deb
文件,通过dpkg -i your_project.deb
安装)。