简介:本文介绍如何通过容器化部署RssHub并结合内网穿透工具,实现从本地环境到公网可访问的RSS订阅源服务。读者将掌握容器化部署技巧、内网穿透配置方法,以及如何构建稳定、安全、可扩展的RSS聚合服务,适用于开发者、自媒体从业者及技术爱好者。
本文将指导读者完成RssHub的容器化部署,并通过内网穿透工具实现公网访问,构建一个可7×24小时在线的RSS订阅源服务。RssHub作为开源RSS生成器,支持上千个网站的订阅源生成,结合内网穿透技术后,可突破局域网限制,满足全球范围内的订阅需求。
部署方案采用分层架构设计:
| 资源类型 | 基础配置 | 扩展建议 |
|---|---|---|
| CPU | 2核 | 4核+(高并发场景) |
| 内存 | 4GB | 8GB+(支持千级订阅源) |
| 存储 | 20GB | 100GB+(含日志持久化) |
| 带宽 | 5Mbps | 20Mbps+(全球访问场景) |
# 安装Docker依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加官方仓库并安装Dockersudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.io# 启动Docker服务并设置开机自启sudo systemctl enable --now docker
# 拉取官方镜像(推荐使用轻量版)docker pull diygod/rsshub:latest# 创建持久化存储目录mkdir -p /data/rsshub/{cache,log}chmod -R 755 /data/rsshub# 启动容器实例docker run -d \--name rsshub \-p 1200:1200 \-v /data/rsshub/cache:/app/cache \-v /data/rsshub/log:/app/log \-e CACHE_EXPIRE=3600 \-e PUPPETEER_WS_ENDPOINT=none \--restart unless-stopped \diygod/rsshub
# 下载穿透工具客户端(以通用CLI工具为例)wget https://example.com/client-linux-amd64.tar.gztar -zxvf client-linux-amd64.tar.gzcd client-linux-amd64# 配置隧道参数(示例配置)./client config add \--protocol tcp \--local_addr 1200 \--remote_port 8080 \--region ap-southeast-1 \--token YOUR_AUTH_TOKEN# 启动隧道服务./client start --all
http://localhost:1200/bilibili/user/357121856 验证B站订阅源https://xxxx.region.example.com/weibo/hotcurl -I http://localhost:1200/health 应返回200状态码| 变量名 | 默认值 | 作用说明 |
|---|---|---|
| CACHE_EXPIRE | 3600 | 缓存有效期(秒) |
| PUPPETEER_WS_ENDPOINT | none | 浏览器自动化控制端点 |
| TIMEOUT | 30000 | 请求超时时间(ms) |
| MAX_RETRY | 3 | 失败重试次数 |
# 在容器启动时添加以下参数-e UV_THREADPOOL_SIZE=16 \-e NODE_OPTIONS="--max-old-space-size=4096" \
docker run -d \--name github-monitor \-e ROUTES="/github/repos/owner/repo" \-e WEBHOOK_URL="https://your-webhook-endpoint" \--network container:rsshub \diygod/rsshub
在RssHub容器内安装自定义插件:
docker exec -it rsshub bashcd /app/lib/routesgit clone https://github.com/your-repo/wiki-plugins.git
重启容器后访问:http://公网地址/wiki/internal/changelog
本地服务未启动:
docker ps -a | grep rsshubdocker logs -f rsshub穿透隧道异常:
netstat -tulnp | grep 1200./client status订阅源抓取失败:
内存不足:
-m 8gCPU占用高:
-e MAX_CONCURRENT=50基础监控:
业务监控:
访问控制:
数据安全:
水平扩展:
垂直扩展:
通过容器化部署RssHub并结合内网穿透技术,我们成功构建了一个可全球访问的RSS订阅源服务。该方案具有以下优势:
建议定期进行健康检查(每周)和性能调优(每月),并根据业务增长情况提前规划资源扩容。对于企业级部署,可考虑增加高可用架构设计和自动化运维工具链。