客户案例 营销网站

您正在阅读的这个站点,从 Next.js 迁到 Rust,没丢一个 URL

envixo.com 以 99 种语言发布。我们把它从 Next.js 重写为 Rust,在切换前逐一比对了每个 URL 与旧站点,并修好了旧站点在搜索引擎、从右到左语言和 AI 助手方面做错的地方。

客户
Envixo
平台
Web 端
行业
营销网站
上线
2026

挑战

原来的 Next.js 站点能用,但需要一台预留 512 MB 内存的 Node.js 服务器,每个页面要传输约 150 KB 的 HTML,而且仍有缺口:没有从右到左的版式,结构化数据也只靠 JavaScript 添加。

之前: 一台预留 512 MB 内存的 Node.js 服务器
之后: 一个 Rust 二进制文件,容器约 33 MB,占用约 46 MB 内存
之前: 每个页面约 150 KB HTML,其中包含 React 数据
之后: 服务端渲染的 HTML,仅在确有需要的地方使用原生 JavaScript
之前: 结构化数据在页面加载后由 JavaScript 添加
之后: 已翻译的 JSON-LD 直接包含在服务器返回的 HTML 中
之前: 阿拉伯语、希伯来语、波斯语以及另外四种语言按从左到右排版
之后: 全部七种从右到左书写的语言都有对应版式
之前: www.envixo.com 返回错误,且没有 llms.txt
之后: www 重定向到 envixo.com,/llms.txt 向 AI 助手介绍公司

我们构建了什么

一个使用 axum 和 Askama 的 Rust 服务器,提供相同的 URL、相同的 99 个语言文件和相同的设计,由 Tailwind CSS 与原生 JavaScript 构建。

相同的 URL 与重定向

语言识别、语言前缀、结尾斜杠和语言 cookie 的行为都与旧站点一致,因此没有丢失任何链接或排名。

先对齐 SEO,再做得更好

元数据、hreflang、JSON-LD 和站点地图与旧站点一致,并修正了社交分享标签,还新增了 llms.txt。

零差异才放行

一个工具逐一比对了新旧站点的每个 URL。切换的前提是零差异,另外还要通过英语、阿拉伯语和日语在三种宽度下的截图。

3D 探索

一个贯穿整个落地页的 three.js 导览,在无法使用 3D 时提供纯文本列表。

不用 SDK 的联系表单

用 Cloudflare Turnstile 拦截垃圾信息,通过 Amazon SES 发送邮件,请求由我们手工签名,另有蜜罐字段和按访客计数的限额。

错误有上报,密钥有保障

服务器和浏览器的错误都上报到 Honeybadger,API 密钥绝不会出现在页面上。

工程成果

内存于 2026 年 10 月在生产环境中测得;镜像大小来自构建产物。站点地图的 URL 数量由自动化测试核对。

~33 MB
整个站点的容器镜像
~46 MB
占用内存
99
来自同一批语言文件的语言数
594
站点地图中的 URL,全部保留
  • 通过 DNS 回滚,旧站点保留七天
  • 测试和镜像构建通过后,依赖更新自动合并
  • 测试与构建都在 Envixo 自有的 CI 运行器上执行
  • 以 99 种语言发布,使用与此前相同的语言文件

技术

  • Rust
  • axum
  • Askama
  • Tailwind CSS
  • three.js
  • Amazon SES
  • Cloudflare Turnstile
  • Kubernetes

需要围绕您的业务打造的软件吗?

集成、内部工具、应用和平台,由指挥 AI 智能体的资深工程师按需定制开发。告诉我们您的需求,我们会向您展示我们将如何构建它。