如何部署基于Nodemailer与node-cron的网页爬虫实现离线运行?
解决方案:部署Node.js定时邮件爬虫到VPS
一、为什么选VPS?
完全适配你的需求:VPS是24/7持续运行的远程服务器,不受本地电脑关机限制,基础配置(1核1G内存)就能轻松承载你的Node.js爬虫、node-cron定时任务及Nodemailer邮件推送,成本也很低廉。
二、具体部署步骤
1. 选择并购买VPS
优先选搭载Ubuntu 20.04/22.04的VPS,这是Node.js应用最常用的运行环境,后续配置更省心。
2. 连接VPS
用SSH工具(本地终端、Putty等)连接到VPS,命令格式:ssh root@你的VPS公网IP
首次连接按提示完成身份验证,建议配置密钥登录替代密码,提升安全性。
3. 在VPS上配置Node.js环境
- 更新系统包:
sudo apt update && sudo apt upgrade -y - 安装Node.js和npm(以18.x版本为例):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs - 验证安装成功:
node -v && npm -v
4. 上传应用代码到VPS
两种常用方式:
- Git克隆:若代码存于GitHub/GitLab仓库,直接在VPS执行:
git clone 你的代码仓库地址 - SCP传输:本地终端执行,将本地代码文件夹传到VPS:
scp -r 本地代码文件夹路径 root@你的VPS公网IP:/目标路径
5. 安装依赖并测试运行
- 进入应用目录:
cd 你的应用文件夹 - 安装项目依赖:
npm install - 手动启动应用测试,确认能正常爬取数据并发送邮件:
node app.js(替换为你的应用入口文件名)
6. 配置进程管理工具,确保应用持续运行
直接用node app.js启动的话,SSH断开后进程会终止,需用进程管理工具守护:
- 安装PM2(主流Node.js进程管理器):
npm install pm2 -g - 用PM2启动应用:
pm2 start app.js --name "course-reminder"(course-reminder为自定义进程名,方便管理) - 设置PM2开机自启:
pm2 startup
执行命令后会输出一串配置指令,复制执行即可完成开机自启设置。 - 常用PM2命令:
- 查看进程状态:
pm2 status - 查看应用日志:
pm2 logs course-reminder - 重启应用进程:
pm2 restart course-reminder
- 查看进程状态:
7. 配置防火墙(可选但推荐)
确保VPS防火墙允许必要的网络请求:
- 查看防火墙状态:
sudo ufw status - 允许SSH连接(防止被锁在外):
sudo ufw allow ssh - 若应用有对外接口,允许对应端口:
sudo ufw allow 3000(替换为你的应用端口) - 启用防火墙:
sudo ufw enable
三、额外注意事项
- 邮件发送限制:部分VPS默认封禁25端口,建议用Nodemailer配置第三方SMTP服务(如QQ邮箱、Gmail),使用465/587端口发送邮件,避免投递失败。
- 定时任务验证:部署后可临时修改
node-cron的定时规则(比如设置1分钟后发送测试邮件),确认定时功能正常。 - 数据备份:若应用有本地存储的课程数据,定期备份到VPS其他目录或本地设备。
内容的提问来源于stack exchange,提问作者Oliver Weinzettl
相关产品推荐
相关产品推荐

