首页主机资讯Linux系统中Rust的部署流程

Linux系统中Rust的部署流程

时间2025-12-02 22:28:03发布访客分类主机资讯浏览896
导读: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
  • 常用命令:
    • 重新加载并启用开机自启: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。

五 容器化部署与国内加速

  • 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
  • 国内加速建议:
    • 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”。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux系统中Rust的部署流程
本文地址: https://pptw.com/jishu/761751.html
Rust在Linux中的多线程支持如何 Linux下Rust的内存安全怎样保障

游客 回复需填写必要信息