Linux系统中Rust的部署流程
导读:Linux系统中Rust的部署流程 一 环境准备与安装 安装系统构建依赖(首次部署建议执行): Debian/Ubuntu:sudo apt update && sudo apt install -y curl buil...
Linux系统中Rust的部署流程
一 环境准备与安装
- 安装系统构建依赖(首次部署建议执行):
- Debian/Ubuntu:sudo apt update & & sudo apt install -y curl build-essential gcc make
- RHEL/CentOS/Fedora/OpenCloudOS:sudo dnf install -y curl gcc make
- 安装 Rust 工具链(推荐 rustup):
- curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 若国内网络较慢,可设置镜像加速环境变量后重跑安装脚本:
- export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
- export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
- 使环境生效:source $HOME/.cargo/env
- 验证:rustc --version、cargo --version
- 可选:使用系统包管理器安装稳定版工具链(如 OpenCloudOS 9 提供 rust-toolset)。
二 获取与构建应用
- 获取源码:
- 服务器上直接拉取:git clone & & cd
- 或本地构建后上传:cargo build --release,随后用 scp/rsync 传输二进制到服务器
- 构建发布版本:cargo build --release
- 产物路径:target/release/your_binary_name(二进制名与项目名或 Cargo.toml 的 name 一致)
- 运行与调试:
- 直接运行:./target/release/your_binary_name
- 设置日志级别等环境变量(示例):export RUST_LOG=info;数据库等按项目需要配置。
三 以 systemd 托管运行
- 创建服务文件:sudo nano /etc/systemd/system/yourapp.service
- 示例内容(按需修改路径与用户):
- [Unit]
- Description=My Rust App
- After=network.target
- [Service]
- Type=simple
- User=your_user
- WorkingDirectory=/path/to/deploy
- ExecStart=/path/to/deploy/target/release/your_binary_name
- Restart=always
- RestartSec=5
- [Install]
- WantedBy=multi-user.target
- [Unit]
- 常用命令:
- 重新加载并启用开机自启:sudo systemctl daemon-reexec & & sudo systemctl enable yourapp.service
- 启动/查看状态/实时日志:sudo systemctl start yourapp.service;sudo systemctl status yourapp.service;journalctl -u yourapp.service -f。
四 网络与反向代理
- 开放防火墙端口(示例为 8080/tcp):
- sudo firewall-cmd --permanent --add-port=8080/tcp & & sudo firewall-cmd --reload
- 反向代理(以 Nginx 为例,/etc/nginx/conf.d/yourapp.conf):
- server {
- listen 80;
- server_name your.domain;
- location / {
- proxy_pass http://127.0.0.1:8080;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- }
- 重载 Nginx:sudo nginx -s reload。
- server {
五 容器化部署与国内加速
- Docker 多阶段构建示例(放到项目根目录的 Dockerfile):
- FROM rust:1.72.1-slim-buster AS builder
- WORKDIR /app
- COPY . .
- RUN cargo build --release
- FROM debian:bullseye-slim
- RUN apt-get update & & apt-get install -y ca-certificates & & rm -rf /var/lib/apt/lists/*
- WORKDIR /app
- COPY --from=builder /app/target/release/your_binary_name /usr/local/bin/yourapp
- CMD [“yourapp”]
- 构建与运行:docker build -t my-rust-app .;docker run -d -p 8080:8080 my-rust-app
- FROM rust:1.72.1-slim-buster AS builder
- 国内加速建议:
- rustup 安装阶段使用 USTC/Tuna 镜像(见上文环境变量)
- Cargo 索引与包镜像(写入 $HOME/.cargo/config):
- [source.crates-io]
- registry = “https://github.com/rust-lang/crates.io-index”
- replace-with = ‘ustc’
- [source.ustc]
- registry = “git://mirrors.ustc.edu.cn/crates.io-index”。
- [source.crates-io]
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux系统中Rust的部署流程
本文地址: https://pptw.com/jishu/761751.html
