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

做网站资源存储爱站网怎么使用

做网站资源存储,爱站网怎么使用,网络规划设计师考试通过率,wordpress没有写权限Node.js Express 项目现代化打包部署全指南 一、项目准备阶段 1.1 依赖管理优化 # 生产依赖安装(示例) npm install express mongoose dotenv compression helmet# 开发依赖安装 npm install nodemon eslint types/node --save-dev1.2 环境变量配置 /…

Node.js Express 项目现代化打包部署全指南

在这里插入图片描述

一、项目准备阶段

1.1 依赖管理优化

# 生产依赖安装(示例)
npm install express mongoose dotenv compression helmet# 开发依赖安装
npm install nodemon eslint @types/node --save-dev

1.2 环境变量配置

// .env.production
MONGODB_URI=mongodb+srv://<user>:<password>@cluster0.example.mongodb.net/production
JWT_SECRET=prod_secure_key_here
PORT=8080
NODE_ENV=production

二、核心打包流程

2.1 构建脚本配置

{"scripts": {"build": "npm run lint && npm audit","start:prod": "NODE_ENV=production node ./bin/www","lint": "eslint 'src/**/*.js' --fix"}
}

2.2 静态资源优化

// 生产环境配置
if (process.env.NODE_ENV === 'production') {app.use(express.static('public', {maxAge: '1y',setHeaders: (res, path) => {if (express.static.mime.lookup(path) === 'text/html') {res.setHeader('Cache-Control', 'public, max-age=0')}}}))
}

三、生产环境部署

3.1 PM2 进程管理

# 安装PM2
npm install pm2 -g# 集群模式启动
pm2 start ./bin/www -i max --name "express-api"

3.2 数据库连接优化

mongoose.connect(process.env.MONGODB_URI, {useNewUrlParser: true,useUnifiedTopology: true,serverSelectionTimeoutMS: 5000,socketTimeoutMS: 45000
})mongoose.connection.on('error', err => {console.error('MongoDB连接异常:', err)process.exit(1)
})

四、进阶部署方案

4.1 Docker 容器化部署

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 8080
CMD [ "npm", "run", "start:prod" ]

4.2 Nginx 反向代理配置

upstream nodejs_backend {server localhost:8080;keepalive 32;
}server {listen 80;location / {proxy_pass http://nodejs_backend;proxy_http_version 1.1;proxy_set_header Connection "";}
}

五、自动化部署策略

5.1 GitHub Actions 配置

name: CI/CD Pipeline
on:push:branches: [ main ]jobs:deploy:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v3- uses: actions/setup-node@v3- run: npm ci- run: npm run build- name: Deploy to Serveruses: appleboy/ssh-action@v0.1.10with:host: ${{ secrets.PROD_HOST }}username: ${{ secrets.SSH_USER }}key: ${{ secrets.SSH_KEY }}script: |cd /var/www/express-appgit pull origin mainnpm install --productionpm2 reload all

六、安全与监控

const helmet = require('helmet')
const rateLimit = require('express-rate-limit')// 安全头设置
app.use(helmet({contentSecurityPolicy: {directives: {defaultSrc: ["'self'"],scriptSrc: ["'self'", "'unsafe-inline'"]}}
}))// 请求限流
const limiter = rateLimit({windowMs: 15 * 60 * 1000, // 15分钟max: 100 // 每个IP限制100个请求
})

七、注意事项

  • 环境变量安全:切勿将.env文件提交到版本库
  • 日志管理:建议使用Winston进行结构化日志记录
  • 性能监控:集成APM工具(如New Relic或Prometheus)
  • 错误跟踪:配置Sentry进行异常捕获
  • CI/CD扩展:可结合SonarQube进行代码质量检测

八、延伸工具推荐

  • 性能分析工具:clinic.js
  • 压力测试:artillery
  • 配置管理:Consul
  • 容器编排:Kubernetes
  • 服务监控:Grafana + Prometheus
http://www.dtcms.com/wzjs/313313.html

相关文章:

  • 建设wap手机网站关联词有哪些四年级
  • 日本做头像的网站有哪些关键词搜索引擎优化推广
  • 深圳专业网站建设平台网页百度网盘资源搜索引擎
  • 公司注册网站的费用多少如何做好网络推广
  • 做导师一般去什么网站找素材百度快照在哪里找
  • 网站建设 提成西安seo顾问培训
  • 做新闻类网站如何盈利专业优化网站排名
  • 建工e采网seo网络营销推广公司
  • 专业建站公司哪家有名安卓优化大师下载安装
  • 学网站建设上海app开发公司
  • 手机上如何做网站网络优化工程师主要做什么
  • 投票网站源码php全网整合营销公司
  • 织梦dede做网站的优点岳阳seo公司
  • 班级设计网站建设百度关键词排名查询
  • 光泽县规划建设局网站网站友情链接的好处
  • 温岭app开发公司seo搜索优化是什么呢
  • 初中信息技术 网站制作全国疫情最新
  • 外国网站上做Task链接搜索引擎
  • 宝塔面板wordpress安装优化 seo
  • 铜川网站建设公司电话广告联盟官网
  • 教你做面膜v官方网站手机系统优化工具
  • 电子商务网站规划与网页制作2345网址导航智能主板
  • 平安网站建设工作总结广告公司取名字参考大全
  • 企业做网站便宜成都最新消息今天
  • 做网站文字怎么围绕图片竞价托管外包服务
  • 青岛本地招聘网站湘潭网站设计
  • 网站建设哪家好服务国内好的seo网站
  • 网站做了301怎么查看跳转前网站百度seo怎么提高排名
  • 沈阳网站模板建站优化网站关键词排名
  • 做电商网站的框架结构图好的推广平台