别再花钱买服务了!手把手教你用阿里云ECS免费搭建个人RSSHub(Node.js 18 + PM2 守护)

张开发
2026/4/20 7:36:28 15 分钟阅读

分享文章

别再花钱买服务了!手把手教你用阿里云ECS免费搭建个人RSSHub(Node.js 18 + PM2 守护)
零成本打造专属RSSHub阿里云ECSNode.js全栈部署实战每次打开手机十几个APP的未读红标让人焦虑——新闻、视频、博客分散在各个平台时间被碎片化推送蚕食。RSS这个古老协议反而成了信息焦虑的解药而自建RSSHub服务就像打造个人专属的信息枢纽站。本文将带你用阿里云免费额度开源技术栈构建永不失效的资讯管道。1. 为什么自建RSSHub值得投入第三方RSSHub服务常面临接口限流或突然关闭去年某知名公共服务突然停更导致大量用户无法获取内容。自建方案不仅能规避这些风险更有三大核心优势成本趋近于零利用阿里云ECS的免费试用套餐1核2G配置可稳定运行后续续费成本仅为包年60元/月学生认证更低至9.5元/月数据完全自主所有路由规则和缓存数据掌握在自己手中无需担心隐私泄露定制化扩展可自由添加私有路由例如监控特定电商商品价格波动或聚合内部系统消息实测数据自建服务在1核2G配置下可稳定支撑日均5000次请求响应时间保持在200ms以内2. 环境准备现代Node.js运行环境搭建阿里云CentOS 7默认的Node.js版本4.2.6早已过时我们需要绕过系统仓库直接安装最新LTS版本。以下是经过验证的最佳实践2.1 二进制部署方案推荐# 下载Node.js 18 LTS版本 wget https://nodejs.org/dist/v18.19.1/node-v18.19.1-linux-x64.tar.xz # 解压到/opt目录 sudo tar -xvf node-v18.19.1-linux-x64.tar.xz -C /opt # 设置全局PATH echo export PATH/opt/node-v18.19.1-linux-x64/bin:$PATH | sudo tee /etc/profile.d/nodejs.sh source /etc/profile验证安装node -v # 应输出v18.19.1 npm -v # 应输出9.5.02.2 常见问题排雷软链接失效若遇到command not found检查/usr/local/bin是否在PATH中权限问题所有命令建议用普通用户操作通过sudo提权而非直接使用root依赖缺失先运行sudo yum install -y libX11 xdpyinfo解决Canvas依赖3. RSSHub服务部署全流程3.1 源码获取与依赖安装# 克隆仓库建议使用加速镜像 git clone https://github.com.cnpmjs.org/DIYgod/RSSHub.git cd RSSHub # 使用国内镜像源加速安装 npm config set registry https://registry.npmmirror.com npm install --production安装过程可能遇到的典型错误及解决方案错误类型表现特征修复方案node-gyp错误编译原生模块失败安装python3和make工具链证书验证失败SELINUX阻止访问临时关闭setenforce 0内存不足进程被OOM Killer终止添加swap空间或升级配置3.2 关键配置调优创建.env配置文件CACHE_TYPEredis REDIS_URLredis://localhost:6379 PORT1200 # 建议添加访问控制 ALLOW_FROMyour_ip_address性能优化参数# 调整Node.js内存限制 export NODE_OPTIONS--max-old-space-size10244. 生产级守护方案PM2高级配置基础启动命令已不能满足长期运行需求我们需要创建完整的生态系统文件// ecosystem.config.js module.exports { apps: [{ name: rsshub, script: lib/index.js, instances: max, exec_mode: cluster, autorestart: true, watch: false, max_memory_restart: 500M, env: { NODE_ENV: production } }] }启动命令升级pm2 start ecosystem.config.js pm2 save pm2 startup # 生成系统服务脚本关键监控指标查看pm2 monit # 实时监控面板 pm2 logs --lines 100 # 查看最近日志5. 安全加固与持续运维5.1 网络层防护阿里云安全组需要开放1200端口但建议配合Nginx增加基础认证server { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:1200; auth_basic RSSHub Auth; auth_basic_user_file /etc/nginx/.htpasswd; } }生成密码文件sudo sh -c echo -n username: /etc/nginx/.htpasswd sudo sh -c openssl passwd -apr1 /etc/nginx/.htpasswd5.2 自动化更新方案创建定期更新脚本/usr/local/bin/update_rsshub.sh#!/bin/bash cd /path/to/RSSHub git pull npm install --production pm2 restart rsshub添加到crontab0 3 * * * /usr/local/bin/update_rsshub.sh /var/log/rsshub_update.log 21这套方案在我管理的三台服务器上已稳定运行17个月期间仅因阿里云实例自动迁移重启过一次服务。实际体验证明自建服务的稳定性和可控性远超第三方托管配合IFTTT等自动化工具还能实现更多个性化玩法比如将特定RSS推送到Telegram或自动保存到Notion数据库。

更多文章