当前位置: 首页 > news >正文

新建网站部署流程


1. 新建 Node 服务,指定端口并代理前端静态资源

操作步骤:
  1. 初始化 Node 项目
    mkdir my-website && cd my-website
    npm init -y
    npm install express
    
  2. 创建 app.js(示例代码)
    const express = require('express');
    const app = express();
    const PORT = 3000; // 指定服务端口// 代理前端静态资源(假设前端文件在 `dist` 目录)
    app.use(express.static('dist'));// 处理前端路由(如单页应用)
    app.get('*', (req, res) => {res.sendFile(__dirname + '/dist/index.html');
    });app.listen(PORT, () => {console.log(`Server running on http://localhost:${PORT}`);
    });
    
  3. 测试服务
    node app.js
    
    访问 http://服务器IP:3000 确认服务正常运行。

2. 上传前端项目到指定目录

操作步骤:
  1. 构建前端项目(以 Vue/React 为例)
    npm run build  # 生成 `dist` 或 `build` 目录
    
  2. 上传到服务器
    scp -r ./dist user@服务器IP:/path/to/my-website/
    
    • 确保目录结构与 Node 服务的 express.static 路径一致。

3. 使用 PM2 代理 Node 进程

操作步骤:
  1. 全局安装 PM2
    npm install pm2 -g
    
  2. 启动服务并设为守护进程
    pm2 start app.js --name "my-website"
    
  3. 设置开机自启
    pm2 startup
    pm2 save
    
  4. 常用命令
    pm2 logs my-website      # 查看日志
    pm2 restart my-website   # 重启服务
    

4. 新增服务器二级域名(A记录解析)

操作步骤:
  1. 在域名管理平台(如阿里云DNS、Cloudflare)添加A记录
    • 主机名subdomain(如 blog
    • 记录值:服务器公网IP
    • TTL:默认(600秒)
  2. 验证解析生效
    ping subdomain.your-domain.com
    

5. 开放服务器端口并设置防火墙

操作步骤:
  1. 检查端口占用
    sudo netstat -tulnp | grep 3000
    
  2. 开放端口(以UFW为例)
    sudo ufw allow 3000/tcp   # 放行Node服务端口
    sudo ufw enable           # 启用防火墙
    sudo ufw status           # 验证规则
    
  3. 云服务器安全组(如AWS/阿里云)
    • 在控制台添加入站规则:允许 TCP 3000

6. 配置 Nginx 反向代理

操作步骤:
  1. 创建 Nginx 配置文件
    sudo nano /etc/nginx/conf.d/my-website.conf
    
  2. 配置内容(示例)
    server {listen 80;server_name subdomain.your-domain.com;location / {proxy_pass http://localhost:3000;  # 转发到Node服务proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# 可选:静态文件直接由Nginx处理location /static {alias /path/to/my-website/dist/static;}
    }
    
  3. 测试并重启 Nginx
    sudo nginx -t   # 检查语法
    sudo systemctl restart nginx
    

7. 访问调试与日志排查

操作步骤:
  1. 访问二级域名
    浏览器打开 http://subdomain.your-domain.com,检查页面和网络请求。
  2. 查看服务日志
    pm2 logs my-website          # Node服务日志
    sudo tail -f /var/log/nginx/error.log  # Nginx错误日志
    
  3. 常见问题
    • 502 Bad Gateway:检查 Node 服务是否运行、端口是否匹配。
    • 403 Forbidden:确认 Nginx 有权限访问 dist 目录(chmod 755)。
    • DNS未生效:等待解析或本地修改 hosts 文件临时测试。

补充优化建议

  1. HTTPS 配置
    使用 Let’s Encrypt 免费证书:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d subdomain.your-domain.com
    
  2. 静态文件缓存
    在 Nginx 配置中添加缓存策略:
    location /static {expires 365d;add_header Cache-Control "public";
    }
    
  3. 进程监控
    使用 pm2 monit 实时监控资源占用。

流程图

新建Node服务
上传前端资源
PM2守护进程
解析二级域名
开放端口
Nginx反向代理
访问调试

按此流程操作,即可完成从代码到线上服务的完整部署!

相关文章:

  • 2025年阿里最新软件测试面试题:Web 测试+接口测试+App 测试
  • GitHub 开源 AI 图像超分辨率工具 upscayl 介绍
  • 为什么使用beego框架接收不到前端的请求体
  • 前端开发面试题总结-CSS篇
  • 编程边界突破:当AI能听懂你的需求时…
  • 【TinyWebServer】线程同步封装
  • Nuxt.js 入门总结教程
  • 前端使用 preview 插件预览docx文件
  • PPT转图片拼贴工具 v3.0
  • MYSQL(三)--服务器启动参数与配置
  • 云服务器代理商的合作模式
  • 【信息系统项目管理师-选择真题】2025上半年(第一批)综合知识答案和详解
  • 每日算法-250605
  • JVM 类初始化和类加载 详解
  • 代码训练LeetCode(24)数组乘积
  • LeetCode 热题 100 - 哈希 - 128
  • ES6中的Map与Set数据结构的简单应用
  • 自定义注解facade 实现切面 进行日志记录和参数校验
  • Python训练第四十五天
  • 类似东郊到家app系统源码开发
  • 网站留言板功能/许昌正规网站优化公司
  • 校园网站建设提升/app推广平台有哪些
  • 政府门户网站建设策划/上海今天发生的重大新闻
  • 黑龙江省垦区建设协会网站/河南网站推广多少钱
  • 做网站哪家强/seo搜索优化是什么
  • 专门做asmr的网站/2345网址导航用户中心