搭建一个带后端的投票网站(Nginx + Node)
本文最后更新于 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;
    }
}

五、踩坑总结

  1. 只部署 public 是不够的
  2. Node 没跑就没有数据
  3. API 路径必须走代理

六、最终效果

页面正常显示,投票功能可用,地图数据正常加载。


后面准备再加:

  • 投票统计
  • 防刷机制
  • 后台管理面板

慢慢完善中。

下一篇