node项目上线

1、multer实现文件上传

npm i -S multer
//multer模块不仅能够帮我们处理上传文件,也能解析post提交数据。
// 使用multer中间件
const multer = require("multer");
const uploader = multer({
// 指定文件上传成功后所在的路径
dest: path.join(__dirname,'../', "public", "uploads"),
});
// 路由上应用multer   上传文件信息会挂载到 req.file 上
router.post("/moive/add",
uploader.single("pic"), // 此处的`pic`位置一定要与文件域的name值一致

nodejs项目上线

使用PM2进行
PM2的特性:

内建负载均衡(使用Node cluster 集群模块)
后台运行
0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
具有Ubuntu和CentOS 的启动脚本
停止不稳定的进程(避免无限循环)
控制台检测
提供 HTTP API
远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )

//安装
npm install -g pm2
//	常用命令
pm2 start app.js  启动app项目
pm2 list 列出由pm2管理的所有进程信息,还会显示一个进程会被启动多少次,因为没处理的异常
pm2 stop all        停止所有进程
pm2 restart all    重启所有进程
pm2 reload all     0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0          停止指定的进程
pm2 restart 0      重启指定的进程
pm2 delete 0       杀死指定的进程
pm2 delete all    杀死全部进程
pm2 start app.js -i max    根据有效CPU数目启动最大进程数目
pm2 start app.js -i 4       启动4个进程
pm2 start app.js --name serverone 启动一个进程并把它命名为 serverone 或用 -n 
pm2 stop serverone   停止 serverone 进程
pm2 start app.js -i max -e err.log -o out.log 启动 并 生成一个配置文件
### 将 Node.js 项目部署到生产环境 #### 使用 PM2 进程管理器优化 Node.js 应用程序 为了确保应用程序在生产环境中稳定运行,推荐使用 PM2 来管理和监控 Node.js 应用。PM2 提供了自动重启、负载均衡等功能,能够有效提升应用的可用性和性能[^5]。 安装全局 PM2 并启动服务器脚本: ```bash npm install pm2 -g pm2 start server.js --name "blog" ``` 设置开机自启以保障服务持久在线: ```bash pm2 startup pm2 save ``` #### 实现容器化部署提高可移植性与一致性 对于希望进一步简化部署流程的情况,建议采用 Docker 技术来打包 Node.js 应用及其依赖项。这不仅有助于创建一致性的执行环境,还能方便地迁移至不同的主机或云平台之上[^1]。 编写 `Dockerfile` 文件定义镜像构建过程: ```dockerfile FROM node:alpine WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . EXPOSE 8080 CMD ["node", "server.js"] ``` 构建并推送 Docker 镜像至仓库以便后续拉取使用: ```bash docker build -t yourusername/your-app-name . docker push yourusername/your-app-name ``` #### 加强安全性防护措施防止潜在威胁 考虑到 Web 开发中的各种安全挑战,在实际部署前务必采取必要的防御手段保护系统免受攻击。具体做法包括但不限于启用 HTTPS 协议加密传输通道;定期更新软件版本修补已知漏洞;严格校验输入参数预防 SQL 注入等恶意行为的发生[^4]。 配置 Nginx 反向代理增强网络层隔离效果的同时支持 SSL/TLS 终止功能: ```nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/certs/example.crt; ssl_certificate_key /etc/nginx/certs/example.key; location / { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值