尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从 0 到上线:单文件网页 App 部署到阿里云 ECS 全流程(Nginx+Node+PM2+PostgreSQL)

从 0 到上线:单文件网页 App 部署到阿里云 ECS 全流程(Nginx+Node+PM2+PostgreSQL) 从 0 到上线单文件网页 App 部署到阿里云 ECS 全流程NginxNodePM2PostgreSQL“今天吃什么”——这五个字是我每天下班回家面对冰箱时的终极难题。作为一个非科班、纯自学的普通打工人我没想做多牛的产品就想要个能替我想好「这顿吃啥、还差多少营养」的小工具。于是用业余时间做了个单文件网页 App「今天吃什么 · 纠结症救星」。做完之后真正的难题才开始怎么让它稳定地跑在网上让别人也能打开这篇聊聊我从「本地能跑」到「公网可访问」的全过程以及踩过的坑。希望帮到同样想把自己小工具上线的你。一、先说产品它解决了什么填身高体重它算出你今天该吃多少热量/蛋白按「当日营养缺口」智能凑出三餐不是乱推是真算缺口支持自己做饭 / 点外卖 / 外出吃三种场景120 菜品库、饮水打卡、周趋势图、云端同步、分享卡片。数据没登录存本机登录后存云端。二、为什么不用「现成平台」一开始图省事试了 Serverless云函数 对象存储坑1云函数默认域名响应头强制Content-Disposition: attachmentHTML 直接变成「下载文件」而不是渲染页面前端必须外置代码层无解。坑2为国内访问快试了某 CDN结果又慢又偶发打不开。再加上托管数据库密码里的特殊字符要 URL 编码、建表权限各种幺蛾子……结论对个人小项目与其和平台特性搏斗不如买台自己的服务器全自己管反而最省心。三、最终架构一台机器全包公网 80/443 (Nginx) └─ 今天吃什么 Web App ├─ 前端单文件网页手机电脑自适应 ├─ 后端Node.js PM2端口3000崩了自动拉起 └─ 数据库本机 PostgreSQL存账号/饮食记录 服务器阿里云 ECS Ubuntu 22.04 / 2核2G / 北京 / 包年包月 ¥99/年四、部署全流程可复现买 ECSUbuntu 22.042核2G北京包年包月预装 Docker 可选安全组放行 80 / 443 / 22本地scp上传部署包到服务器服务器跑一键脚本装 PG14 Node Nginx PM2 → 建库建表 → 复制前后端 → 配 Nginx 反代 → PM2 启动验证http://IP/可访问、/api/health返回 ok提交 ICP 备案通过后脚本绑域名 免费 HTTPS整个流程约 10 分钟核心是「前端外置 Nginx 反代 PM2 守护」三板斧。五、踩坑实录省你时间云函数 HTML 变下载别挣扎前端必须独立托管。数据库密码含!#连接串里要 URL 编码成%21%40%23。建表报information_schema权限错用public.前缀建表。备案主体一致性域名和服务器要在同一实名主体下否则备案会被驳回我为此换了账号重买服务器。账号风控同一人多个账号参与活动会被风控新服务器要用不同实名。六、现状 邀请工具已上线跑在自有服务器国内直连打开不转圈。体验地址http://39.102.215.224/备案通过后换https://mealpick.me/测试期注册验证码123456登录就能存自己的饮食记录。欢迎来用、来挑刺、来提需求——你的每条反馈我都会看下个版本安排上。如果你也在做个人小工具希望这篇能少让你踩几个坑。有问题评论区聊
返回列表