告别官方接口限制:用Docker在阿里云ECS上5分钟部署一个专属RSSHub
5分钟在阿里云ECS部署专属RSSHub:Docker化方案全指南
每次看到喜欢的UP主更新视频却总是错过?第三方RSSHub接口频繁失效让人抓狂?今天分享一个我在实际项目中验证过的极简方案——用Docker在阿里云ECS上快速搭建私有RSSHub服务。相比传统部署方式,这个方案能让你避开90%的"坑",真正实现开箱即用。
1. 为什么选择Docker部署RSSHub?
去年帮三个客户迁移RSSHub服务时,我发现传统部署方式存在几个致命问题:
- 依赖地狱:Node.js版本冲突、npm包缺失等问题平均消耗2小时/次
- 环境污染:全局安装的PM2可能影响其他Node服务
- 升级困难:每次更新需要手动合并代码和重新配置
而Docker方案正好解决了这些痛点。最近测试发现,使用容器化部署后:
| 指标 | 传统部署 | Docker部署 |
|---|---|---|
| 首次部署时间 | 47分钟 | 5分钟 |
| 升级耗时 | 15分钟 | 1分钟 |
| 系统资源占用 | 高 | 隔离可控 |
提示:阿里云ECS建议选择至少1核2G配置,地域选择离用户最近的位置(如大陆用户选华北2)
2. 环境准备:10分钟搞定基础配置
2.1 购买并登录阿里云ECS
推荐使用Ubuntu 20.04镜像,初始化时记得做两件事:
- 添加SSH公钥(比密码登录更安全)
- 开放1200端口(RSSHub默认端口)
登录后先更新系统:
sudo apt update && sudo apt upgrade -y2.2 安装Docker引擎
阿里云官方镜像仓库加速能提升下载速度:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun sudo systemctl enable --now docker验证安装:
docker --version # 应输出类似:Docker version 20.10.17, build 100c7013. 一键部署RSSHub服务
3.1 使用官方Docker镜像
直接运行这个优化过的命令:
docker run -d \ --name rsshub \ --restart unless-stopped \ -p 1200:1200 \ -e CACHE_EXPIRE=3600 \ -e CACHE_CONTENT_EXPIRE=86400 \ diygod/rsshub:latest参数说明:
--restart unless-stopped:服务器重启后自动恢复服务CACHE_EXPIRE:路由缓存时间(秒)CACHE_CONTENT_EXPIRE:内容缓存时间(秒)
3.2 验证服务状态
检查容器日志:
docker logs -f rsshub当看到"Listening on 0.0.0.0:1200"时,在浏览器访问:
http://<你的服务器IP>:12004. 高级配置与优化技巧
4.1 使用Docker Compose管理服务
创建docker-compose.yml文件:
version: '3' services: rsshub: image: diygod/rsshub:latest container_name: rsshub restart: unless-stopped ports: - "1200:1200" environment: CACHE_EXPIRE: "3600" CACHE_CONTENT_EXPIRE: "86400" PUPPETEER_WS_ENDPOINT: "ws://browserless:3000" depends_on: - browserless browserless: image: browserless/chrome:latest container_name: browserless restart: unless-stopped ports: - "3000:3000"启动服务:
docker-compose up -d4.2 性能优化方案
对于高频使用的路由,建议:
增加缓存时间:
docker exec -it rsshub sed -i 's/CACHE_EXPIRE=3600/CACHE_EXPIRE=7200/g' /etc/environment限制内存使用(防止OOM):
# 在docker-compose.yml中添加 deploy: resources: limits: memory: 1G
5. 常见问题解决方案
Q1:访问速度慢怎么办?
- 方案1:在ECS安全组中开启1200端口TCP/UDP双协议
- 方案2:更换阿里云内网镜像仓库加速器
Q2:如何更新RSSHub版本?
docker-compose pull && docker-compose up -dQ3:自定义路由怎么处理?挂载自定义配置文件:
docker run -v ./config.js:/app/config.js diygod/rsshub上周帮一个自媒体团队部署时,他们需要监控50+个B站UP主,用这个方案后更新延迟从原来的30分钟降到了3分钟以内。最关键的是再也不用担心官方接口突然失效了——自己的服务,自己做主。
