用华为云 AI 开发者空间十关闯关:从静态站到 ECS+MySQL 全栈部署实践
【摘要】 记录在华为云 AI 开发者空间完成十关闯关的全过程:沙箱一键建站起步,ECS 上完成 nginx + systemd + MySQL 全栈部署,并用 helmet 与 rate-limit 做安全加固,附关键配置片段。
本文记录我在华为云开发者"线上闯关挑战"中的完整实践过程:从 AI 开发者空间的一键建站,到在 ECS 上完成 nginx + systemd + MySQL 的全栈部署,最后加上 helmet 与 rate-limit 的安全加固。全程在开发者空间沙箱与免费试用的 ECS 上完成,适合想系统练一遍 Web 全栈部署的开发者参考。
一、环境准备
进入华为云开发者空间(AI DevSpace)体验版,自带容器化沙箱,预装 Node.js 与常用构建工具,开机即可用,不占用本地环境。
二、静态站部署(前几关)
先用最简单的方式把静态页面跑起来,再逐步演进:
# 静态资源直接交给 nginx
sudo cp -r dist/* /var/www/html/
sudo nginx -t && sudo systemctl reload nginx
三、MySQL 数据接入
在 ECS 上安装 MySQL 后,建库建表,并让后端通过环境变量读取连接信息,避免把密码写进代码仓库:
CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4;
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
content VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
四、systemd 守护进程
用 systemd 管理后端服务,开机自启、崩溃自动拉起:
[Unit]
Description=My Node App
After=network.target mysql.service
[Service]
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/node server.js
Restart=always
Environment=PORT=3000
[Install]
WantedBy=multi-user.target
五、安全加固:helmet 与 rate-limit
加上两层最常见的防护:安全响应头与接口限流。
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
app.use(helmet());
app.use(rateLimit({ windowMs: 60 * 1000, max: 100 }));
六、小结
整个闯关流程把"能跑"到"能上线"之间的缝隙补齐了:nginx 做静态与反向代理,systemd 做进程守护,MySQL 做持久化,helmet/rate-limit 做基础安全。建议动手时把每一关的配置都自己敲一遍,印象会深刻很多。华为云开发者空间的沙箱 + 免费试用 ECS 组合,几乎零成本就能完成这套全栈练习。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)