本文最后更新于 62 天前,其中的信息可能已经过时,如有 错误/失效 请发送邮件到qimeng9420@foxmail.com或留言。
最近在折腾一个 地图投票系统,踩了不少坑,这里记录一下完整搭建流程。
一、项目结构
项目大致是这样的:
- public:前端页面(HTML/JS)
- server.js:Node 后端
- json数据:存放地图信息
二、部署思路
一开始我直接用 Nginx 托管静态页面,结果发现按钮完全没反应。
原因很简单:
前端请求的数据接口(API)根本没跑。
正确架构应该是:
用户 → Nginx → Node.js → 返回数据
三、启动 Node 服务
使用 PM2 管理进程:
pm2 start server.js --name mapvote
pm2 save
pm2 startup
这样服务器重启也不会掉。
四、配置 Nginx 反向代理
关键配置如下:
server {
listen 8080;
location / {
root /var/www/mapvote/public;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:3000;
}
}
五、踩坑总结
- 只部署 public 是不够的
- Node 没跑就没有数据
- API 路径必须走代理
六、最终效果
页面正常显示,投票功能可用,地图数据正常加载。
后面准备再加:
- 投票统计
- 防刷机制
- 后台管理面板
慢慢完善中。