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

新建网站部署流程


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反向代理
访问调试

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

http://www.xdnf.cn/news/12158.html

相关文章:

  • glibc 交叉编译
  • Ansys Maxwell:线圈和磁体的静磁 3D 分析
  • 深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)
  • USB-C/HDMI 2.0 2:1 SW,支持4K60HZ
  • 如何选择有效的CoT提示提升模型推理性能!
  • 在历史项目升级中用SSR和SSG优化性能的实现流程
  • em/px/rem/vh/vw区别
  • IBMS综合运维平台业务分析与BA楼宇自控系统技术架构与应用
  • Node事件循环机制详解
  • 【QQMusic】在LikePage点击取消喜欢没有反应
  • (LeetCode 每日一题) 1061. 按字典序排列最小的等效字符串 (并查集)
  • 双空间知识蒸馏用于大语言模型
  • Android 本地存储路径说明
  • 创客匠人解密创始人IP打造:知识变现的三大核心逻辑
  • 编程笔记---问题小计
  • 玄机——Linux等保测评
  • 游戏开发中的CI/CD优化案例:知名游戏公司Gearbox使用TeamCity简化CI/CD流程
  • 山东大学深度学习期末概念汇总
  • 音视频之视频压缩编码的基本原理
  • StoreView SQL,让数据分析不受地域限制
  • Java八股文——集合「Map篇」
  • Agentic AI 和 Agent AI 到底区别在哪里?
  • 华为云CentOS配置在线yum源,连接公网后,逐步复制粘贴,看好自己对应的版本即可,【新手必看】
  • [蓝桥杯]螺旋矩阵
  • KMP算法:如何通过 next 数组推导模式串该从哪里继续匹配
  • Vue3解决“找不到模块@/components/xxx.vue或其相应的类型声明ts文件(2307)”
  • 华为云Flexus+DeepSeek征文| 华为云Flexus X实例单机部署Dify-LLM应用开发平台全流程指南
  • Vue ②-computed || watch || 指令
  • oracle数据恢复—oracle数据库执行truncate命令后的怎么恢复数据?
  • deepseek-r1-0528-qwen3-8b本地部署:Ollama老版本大升级至0.9.0