1. 安装Rust工具链在Linux上部署Rust应用的第一步是安装Rust编译器(rustc)和包管理器(cargo)。推荐使用rustup(Rust官方安装工具),它能简化安装流程并支持工具链更新。具体操作如下:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh~/.rustup),安装完成后按提示重新加载环境变量(或手动执行source $HOME/.cargo/env)。rustc --version# 查看Rust编译器版本cargo --version# 查看Cargo包管理器版本若显示版本信息,则说明安装成功。
2. 编写并构建Rust项目
my_project为例):cargo new my_projectcd my_project这会生成包含src/main.rs(主程序入口)和Cargo.toml(项目配置文件)的项目结构。src/main.rs,添加业务逻辑(如经典的“Hello World”示例)。cargo build编译项目,生成调试版本(位于target/debug目录);若需优化性能(如生产环境),使用cargo build --release生成优化版本(位于target/release目录)。3. 部署到Linux服务器
target/release/my_project)复制到服务器。可使用scp命令(本地→服务器):scp target/release/my_project user@remote_host:/path/to/deploy其中user为服务器用户名,remote_host为服务器IP或域名,/path/to/deploy为目标路径。chmod +x /path/to/deploy/my_project/path/to/deploy/my_project若需后台运行(即使关闭终端也不中断),可使用nohup:nohup /path/to/deploy/my_project > app.log 2>&1 &(> app.log将输出重定向到日志文件,2>&1将错误输出合并到标准输出)。4. 使用systemd管理应用(生产环境推荐)为了确保应用在系统启动时自动运行、崩溃时自动重启,建议使用systemd创建服务。
/etc/systemd/system/目录下新建服务文件(如my_project.service):sudo nano /etc/systemd/system/my_project.service[Unit]Description=My Rust ApplicationAfter=network.target# 确保网络就绪后再启动[Service]User=my_user# 运行应用的用户(避免使用root)Group=my_group# 运行应用的组ExecStart=/path/to/deploy/my_project# 可执行文件路径Restart=always# 崩溃时自动重启Environment="RUST_BACKTRACE=1"# 开启Rust错误回溯(便于调试)[Install]WantedBy=multi-user.target# 设置为多用户模式启动sudo systemctl daemon-reload# 重新加载systemd配置sudo systemctl start my_project# 启动服务sudo systemctl enable my_project# 设置开机自启动sudo systemctl status my_project# 查看运行状态journalctl -u my_project -f# 实时查看日志5. 可选:使用Docker部署(跨平台场景)若需要跨平台部署(如避免依赖服务器环境),可使用Docker容器化Rust应用。
Dockerfile:FROM rust:latest# 使用官方Rust镜像作为基础WORKDIR /usr/src/my_project# 设置工作目录COPY . .# 复制项目文件到容器RUN cargo build --release# 构建项目CMD ["./target/release/my_project"]# 容器启动时运行的命令docker build -t my_project .# 构建镜像(标签为my_project)docker run -d -p 8080:8080 my_project# 后台运行,将容器8080端口映射到主机8080端口(若应用需要监听8080端口,可通过-p参数映射)。注意事项
cargo build --release生成优化版本,提升性能。libpq-dev用于PostgreSQL)。rustup update)和应用依赖(cargo update),修复安全漏洞。log crate)记录应用运行状态,便于排查问题。