在开始部署前,需确保目标Linux服务器满足以下条件:
sudo apt update && sudo apt install curl git安装;基于RHEL/Fedora的系统,可通过sudo dnf update && sudo dnf install curl git安装。Rust的官方安装工具为rustup,推荐通过它安装最新稳定版Rust(包含rustc编译器、cargo包管理器):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh;1),等待安装完成;source $HOME/.cargo/env(使rustc、cargo命令全局可用);rustc --version(显示版本号则表示成功)。在本地开发环境中,进入项目目录(cd your_project),执行以下命令生成优化后的发布版本可执行文件:
cargo build --release
构建完成后,可执行文件会存放在target/release/目录下(文件名与项目名称一致,如your_project)。
使用scp(安全拷贝)或rsync(增量同步)将可执行文件传输到目标服务器。例如:
scp target/release/your_project user@your_server_ip:/path/to/deploy
其中,user为服务器用户名,your_server_ip为服务器IP地址,/path/to/deploy为目标路径(如/home/user/apps)。
sudo apt install libpq-dev openssl安装;export命令临时设置(如export DATABASE_URL=postgres://user:pass@localhost/dbname),或写入服务器用户的~/.bashrc(或~/.zshrc)文件中(永久生效)。在服务器的目标路径下,直接执行可执行文件启动应用:
./your_project
若需查看实时日志,可添加--verbose参数(如./your_project --verbose)。
为确保应用开机自启动、崩溃自动重启,建议通过systemd创建服务:
sudo nano /etc/systemd/system/your_project.service;[Unit]
Description=Your Rust Application
After=network.target # 确保网络就绪后再启动
[Service]
Type=simple # 简单类型(适用于前台运行的应用)
User=your_user # 运行应用的系统用户(避免使用root)
WorkingDirectory=/path/to/deploy # 应用工作目录
ExecStart=/path/to/deploy/your_project # 可执行文件路径
Restart=on-failure # 崩溃时自动重启(可选:always/except-failure/on-abnormal)
Environment="RUST_LOG=info" # 设置Rust日志级别(可选)
[Install]
WantedBy=multi-user.target # 多用户模式下启动
sudo systemctl daemon-reload;sudo systemctl start your_project;sudo systemctl enable your_project;sudo systemctl status your_project(确认是否运行正常)。journalctl查看systemd服务日志(sudo journalctl -u your_project -f),或通过logrotate工具实现日志轮转;top、htop查看CPU/内存占用,或集成Prometheus+Grafana监控系统;cron定时任务或第三方工具(如PagerDuty)监控应用状态,异常时发送通知。以上流程覆盖了Rust项目在Linux上的完整部署生命周期,从环境准备到服务化管理,确保应用稳定运行。