位置:首页 > Rust > Linux 上用 Rust 做 Web 开发:从环境安装到 Actix-web 首个服务

Linux 上用 Rust 做 Web 开发:从环境安装到 Actix-web 首个服务

时间:2026-08-22  |  作者:穿越地图的猫  |  阅读:0

目录

  1. 先把 Rust 开发环境装好
  2. 创建项目并接入 Actix-web
  3. 编写第一个可访问的 Web 服务
  4. 运行服务并验证结果
  5. 从 Hello World 走向实际项目
  6. 上线部署时要关注什么

前言

在 Linux 上用 Rust 做 Web 开发,真正让人卡住的通常不是语法,而是从安装工具链、选框架到跑通第一个服务这一整套起步路径。本文按实际操作顺序整理出最小可行流程,并补上运行验证、后续扩展和部署判断点,方便你快速完成入门,同时看清这套技术栈适合解决什么问题。

在 Linux 上做 Rust Web 开发,难点通常不在“能不能跑起来”,而在于第一步该怎么走、该选什么框架、跑通后下一步做什么。本文按实际操作顺序,把环境安装、项目初始化、Actix-web 示例、运行验证以及后续扩展和部署要点串起来,帮助你快速判断这套方案是否适合自己的服务开发场景。

先把 Rust 开发环境装好

要在 Linux 上开始 Rust Web 开发,首先需要把工具链安装完整。最常见的方式是使用 rustup,它可以同时管理编译器、Cargo 以及后续版本更新。

在终端执行下面的安装命令:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装完成后,记得刷新当前 shell 环境,否则新装的工具链命令可能暂时不可用:

source $HOME/.cargo/env

这一步完成后,你就具备了创建、编译和运行 Rust 项目的基础条件。

创建项目并接入 Actix-web

用 Cargo 初始化新项目

Cargo 是 Rust 自带的包管理和构建工具。对于 Web 项目来说,先用它生成标准目录结构,后面加依赖和启动服务都会更顺手。

Rust Web 项目从初始化到接入 Actix-web 的步骤关系图
Rust Web 起步流程从 Cargo 初始化到在 Cargo.toml 中加入 actix-web = "4"。
cargo new my_web_project
cd my_web_project

执行后会生成一个名为 my_web_project 的新目录,其中已经包含基础的 Rust 工程结构。

在 Cargo.toml 中添加 Web 框架依赖

Rust 可选的 Web 框架不少,例如 Actix-web、Rocket、Warp。这里选择 Actix-web 作为示例,原因很直接:性能表现稳定、社区活跃,资料也相对丰富,适合新项目快速起步。

Cargo.toml 中加入以下依赖:

[dependencies]
actix-web = "4"

这里的版本号 "4" 要原样保留,它决定了后续示例代码对应的 API 版本。

编写第一个可访问的 Web 服务

环境和依赖准备好之后,就可以写一个最小可运行示例,先把请求到响应的流程跑通。

Actix-web Hello World 服务的请求处理结构图
Hello World 服务结构最小示例虽短,但已经包含路由、异步处理函数、监听地址和响应返回这几项核心机制。

打开 src/main.rs,写入下面这段代码:

use actix_web::{web, App, HttpResponse, HttpServer};

async fn index() -> HttpResponse {
    HttpResponse::Ok().body("Hello, world!")
}

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new()
            .route("/", web::get().to(index))
    })
    .bind("127.0.0.1:8080")
    .run()
    .await
}

这段程序做了几件事:

  • 定义了一个异步处理函数 index
  • 当访问路由 / 时,通过 GET 请求返回 Hello, world!
  • 使用 HttpServer 把服务绑定到 127.0.0.1:8080

其中 async 是这段代码里的关键点之一。Rust 在 Web 场景中通常会依赖异步模型提升并发处理效率,这也是它在高性能服务开发中经常被提到的原因。

运行服务并验证结果

写完示例后,直接在项目目录下启动:

cargo run

第一次执行时,Cargo 会自动下载并编译依赖,因此耗时通常会更长一些。等看到文中提到的 Starting server... 提示后,就可以在浏览器访问:

http://127.0.0.1:8080

如果页面正常返回 Hello, world!,说明你的 Linux Rust Web 开发环境、项目结构和框架依赖已经全部打通。

从 Hello World 走向实际项目

示例跑通之后,接下来才是真正的 Web 开发阶段。Actix-web 生态已经覆盖了多数常见需求,可以逐步往真实业务靠近,例如:

  • 增加更多路由,拆分不同功能接口;
  • 处理表单提交和请求参数;
  • 连接数据库;
  • 引入模板渲染生成页面内容。

如果你的目标是高并发服务,Rust Web 框架的优势会更明显:性能表现通常不错,内存占用也相对较低。这也是很多人选择用 Rust 做后端服务的现实原因,而不仅仅是“语言新”。

上线部署时要关注什么

开发阶段跑通之后,就要考虑如何把服务放到生产环境。文中提到的几种常见方式包括:

Rust Web 项目从本地运行到生产部署的关注点图
从本地运行到上线跑通本地示例只是开始,真正进入可用阶段时,运行方式、扩展方向和安全设置需要同时考虑。
  • 使用 Docker 打包;
  • 通过 Kubernetes 进行编排;
  • 直接使用云厂商提供的容器服务。

部署方式可以按团队规模和基础设施来选,但生产环境的安全设置不能省,至少要关注这些点:

  • 关闭调试信息;
  • 启用 HTTPS;
  • 限制访问来源。

这些配置不属于“锦上添花”,而是服务真正上线前应当优先确认的基础项。

参考资源

  • Actix-web官方文档
  • Rust编程语言官方网站
  • Cargo包管理器

如果你只是想在 Linux 上快速搭起一个 Rust Web 应用,上面这套流程已经足够作为起点;如果要继续演进到实际业务项目,下一步重点就是围绕路由设计、数据存储和部署方式做取舍。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多