AI 生成了网页,怎么部署上线?从零到 HTTPS 全流程实录
用 AI 写代码的人越来越多,但"让代码在服务器上跑起来"这一步,卡住了 90% 的人。这篇文章记录了我帮一个客户从零部署上线的全过程。
背景
客户用 AI 工具做出了一个漂亮的 HTML 网站(瑜伽馆介绍页),但他完全不知道怎么让这个网站在互联网上被访问到。
他有一台腾讯云服务器,仅此而已。没有装 Nginx,没有配域名,没有 SSL。就是一个裸机。
我花了 4 个小时,从 SSH 连接到 HTTPS 访问,全部搞定。以下是完整记录。
第一步:服务器基础环境
bash
# 连接服务器
ssh root@124.220.xxx.xxx
# 更新系统
apt update && apt upgrade -y
# 安装基础工具
apt install -y nginx python3 certbot ufw
安装 1Panel 管理面板
客户不想每次都敲命令行,所以装了个可视化管理面板:
bash
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
装完之后客户就能在浏览器里管理服务器了,不需要懂 Linux。
第二步:部署网站文件
把客户做好的 HTML 文件上传到服务器:
bash
# 创建网站目录
mkdir -p /opt/www/rosayoga
# 上传文件(本地执行)
scp -r ./ROSA_YOGA/* root@124.220.xxx.xxx:/opt/www/rosayoga/
Nginx 配置
nginx
server {
listen 80;
server_name ruyi.love www.ruyi.love;
root /opt/www/rosayoga;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
bash
# 启用站点配置
ln -s /etc/nginx/sites-available/rosayoga /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
到这里,网站已经可以通过 HTTP 访问了。
第三步:HTTPS 配置
bash
# 申请 Let's Encrypt 免费证书
certbot --nginx -d ruyi.love -d www.ruyi.love
证书自动签发,Nginx 自动配置 HTTPS 跳转。有效期 90 天,Certbot 会自动续期。
第四步:踩坑实录
坑 1:域名未备案
客户的域名 ruyi.love 没有做 ICP 备案。国内服务器绑定未备案域名,会被 DNS 拦截。
解决方案: 配置 Nginx 的 default_server,让直接通过 IP 访问也能打开网站。
nginx
server {
listen 80 default_server;
server_name _;
root /opt/www/rosayoga;
index index.html;
}
等客户完成备案后,再切换到域名访问 + HTTPS。
坑 2:1Panel 和手动安装的 Docker 冲突
1Panel 自带 Docker 管理,但之前手动装的 Docker 容器它不认。
解决方案: 统一用 1Panel 安装 OpenResty(替代 Nginx),所有网站管理都通过面板操作。
坑 3:SSL 证书申请失败
HTTP 验证方式需要域名能被外网访问,但未备案域名被拦截了。
解决方案: 改用 DNS 验证方式,在 1Panel 里配置腾讯云 DNS 账户(SecretId/SecretKey),证书秒签。
最终交付
| 项目 | 状态 |
|---|---|
| 网站上线 | ✅ 124.220.xxx.xxx 可访问 |
| 管理面板 | ✅ 1Panel 可视化管理 |
| SSL 证书 | ✅ 已签发,备案后一键开启 HTTPS |
| 防火墙 | ✅ UFW 已配置,只开放必要端口 |
| 自动续期 | ✅ 证书到期前自动续签 |
整个部署从 SSH 连接到网站可访问,4 个小时。
写在最后
现在 AI 写代码的能力越来越强,很多人都能用 AI 做出网页、应用、小工具。但"让这个东西在服务器上跑起来"这一步,仍然是一个不小的门槛。
这篇文章记录的是一个最基础的静态站部署。如果是动态站(前后端分离、数据库、API 服务),复杂度还会翻几倍。
如果你也在部署这一步卡住了,欢迎评论或私信交流。
12 年全栈工程师,专注 AI 编程落地部署。如果你有项目需要帮忙部署上线,可以私聊我。