搭建RSS订阅网站及部署跨域服务(CORS Anywhere)教程
前言
首先我们说说什么是RSS
RSS全称为全称:RDF Site Summary;Really Simple Syndication,中文名为简易信息聚合(也叫聚合内容)是一种基于XML的标准,在互联网上被广泛采用的内容包装和投递协议。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用。
使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。
下面我们来介绍介绍RSSHub
'万物皆可RSS'
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容
下面我们就来使用宝塔面板来搭建Rsshub与跨域服务
开始
准备
- 服务器(已安装宝塔面板)(博主服务器是Ubuntu18)宝塔面板官方地址
- 域名
1.RSSHub搭建需要一个域名,若继续搭建proxy,还需另一个域名
例如RSSHub搭建使用rss.raycns.com,proxy使用proxy.raycns.com。
2.配置HTTPS,可以在宝塔面板主界面>点击网站>SSL>s申请Let's Encrypt免费证书,需注意,两个域名都必须申请 - 一双勤劳的小手
- 所需软件
SSH连接软件(自备),宝塔面板Docker管理器,宝塔面板PM2管理器
Docker配置
安装Docker
#官方安装脚本一键安装命令 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #国内 daocloud 一键安装命令 curl -sSL https://get.daocloud.io/docker | sh
更新
apt
软件包缓存sudo apt-get update
启动Docker
sudo systemctl enable docker sudo systemctl start docker
RSSHub容器部署
- 运行下面的命令下载 RSSHub 镜像
docker pull diygod/rsshub
- 然后运行 RSSHub
docker run -d --name rsshub -p 1200:1200 -v /www/wwwroot/rsshub:/usr/src/app diygod/rsshub
- 在浏览器打开 http://你服务器的ip:1200/,测试是否部署成功。
- 若想停止RSSHub,请输入以下代码
docker stop rsshub
RSSHub域名配置
- 打开宝塔面板
- 点击网站
- 添加站点(创建一个新站点,使用你域名,前缀随意)根目录填写为
/www/wwwroot/rsshub
PHP版本选择全静态
设置反向代理
点击
你刚刚创建的域名>反向代理>添加反向代理
代理名称:随意填写
目标URL:
http://127.0.0.1:1200
,发送域名:$host
- 访问你刚刚创建的网站
若出现下图,则表示反代理配置成功
搭建跨域服务
那什么是跨域呐?
跨域是指当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
为什么要搭建跨域服务?
因为有些网站是禁止跨域的,这就导致了一些问题,例如图片无法显示或者网站无法访问。
这时候就需要跨域服务了,在因特网上有很多公共跨域服务网站。
我们可以选择公共跨域服务。
如果你不想搭建跨域服务,那么你现在就可以点击网站右侧目录点击成果分享来使用公共跨域访问。
如果你想搭建跨域访问,那我们现在开始搭建。
1.下载并安装proxy
打开SSH软件,输入以下代码请注意选择不同源下载后安装的文件夹不同
使用GitHub源下载并安装(国外服务器)
(国内服务器使用此源可能会下载失败)cd /www/wwwroot/ git clone https://github.com/Rob--W/cors-anywhere.git cd cors-anywhere-master sudo apt install nodejs npm install
使用Gitee源下载并安装(国内服务器)
cd /www/wwwroot/ git clone https://gitee.com/cn-wanglei/cors-anywhere.git cd cors-anywhere sudo apt install nodejs npm install
2.PM2管理器 添加项目
[collapse status="false" title="PM2管理器(新版宝塔已经停用此功能)"]
1.如果你使用的GitHub,则以下表所示填写
启动文件:/www/wwwroot/cors-anywhere-master/server.js
运行目录:/www/wwwroot/cors-anywhere-master
2.如果你使用的Gitee,则以下表所示填写
启动文件:/www/wwwroot/cors-anywhere/server.js
运行目录:/www/wwwroot/cors-anywhere
3.映射跨域服务网址
4.查看跨域服务是否搭建完成
若打开域名与下图相同,则说明搭建成功
5.跨域玩法
在使用跨域服务时,你需要将跨域服务链接置于RSS订阅链接之前
例:澎湃新闻RSS(添加跨域服务后):https://proxy.raycns.com/https://rss.raycns.com/thepaper/featured
[/collapse]
- 添加Node项目
安装Node.js管理器
按如图所示填入相关参数 - 查看跨域服务是否搭建完成
若打开域名与下图相同,则说明搭建成功
5.跨域玩法
在使用跨域服务时,你需要将跨域服务链接置于RSS订阅链接之前
例:澎湃新闻RSS(添加跨域服务后):https://proxy.raycns.com/https://rss.raycns.com/thepaper/featured
成果分享
公共跨域服务网站:https://cors-anywhere.herokuapp.com/我的RSSHub网址:https://rss.raycns.com我的proxy网站:https://proxy.raycns.com
进入RRSHub使用文档来玩RRS吧
[button url="http://docs.rsshub.app"]RRSHub使用文档[/button]
现在我们来配置Handsome时光机RSS配置
简单配置微博RSS(以的配置为例)
{"id":"weibo","name":"我的微博","url":"https://proxy.raycns.com/https://rss.raycns.com/weibo/user/5882926066"}
现在我们说说RSS订阅如何配置以及各个代码的意思
id
:rss标识符,任何字母(id请勿重复 )。- 比如微博,可以是
weibo
- 比如微博,可以是
name
:rss内容标题,一般是中文。如果是微博
,就直接填微博
url
:rss源地址- 比如微博,就是
https://rss.raycns.com/weibo/user/你的微博ID
- 比如别的博客内容:一般的博客系统都支持生成RSS订阅地址的,比如我的博客就是
https://blog.raycns.com/feed/
- 只要是RSS源地址,都是支持的
- 比如微博,就是
img
(非必填项):代表该栏目的图片,以头像形式显示。建议是正方形的。填写图片的url地址即可type
(非必填项):显示的内容形式discription
仅显示文章摘要(有的RSS源摘要中包含整个文章内容)(不填的话,默认是这个)title
仅显示文章标题mix
显示标题+摘要 (暂不支持)
- 若RSS源不支持跨域怎么办
我们可以在RSS订阅地址前填写我们在上文搭建的跨域服务网址,当然也可以加上公共跨域地址(https://cors-anywhere.herokuapp.com/
)
例如:https://xxxx.com(禁止跨域)
,在https://xxxx.com
前加上https://cors-anywhere.herokuapp.com/
即可跨域
分享一下我博客时光机使用的RSS
{"id":"weibo","name":"我的微博","url":"https://proxy.raycns.com/https://rss.raycns.com/weibo/user/5882926066"},
{"id":"zhihuribao","name":"知乎日报","url":"https://proxy.raycns.com/https://rss.raycns.com/zhihu/daily/section/2"},
{"id":"jsyj","name":"每日一句","url":"https://proxy.raycns.com/https://rss.raycns.com/iciba/7/poster"},
{"id":"bing","name":"Bing 壁纸","url":"https://proxy.raycns.com/https://rss.raycns.com/bing"}
完结撒花