> 基于订阅服务需求,在宝塔面板服务中使用跨站订阅服务的搭建详细教程 # 安装跨站订阅所需服务 在宝塔的软件商店里搜索Docker管理器安装  # 配置Docker ## 获取镜像 打开刚刚安装好的Docker管理器点击设置,找到 `镜像管理` - `获取镜像` ,输入 `diygod/rsshub` 获取rsshub镜像  # 创建Docker容器 打开 `容器列表` - `创建容器`,具体配置如图所示:  1. 端口映射为1200 2. 将目录 `/www/wwwroot/rsshub/` 映射到目录 `/usr/src/app/` 3. CPU权重 30 配置完成后,容器就创建成功了  # 新建网站并反向代理 域名填写服务器IP或者域名地址,php版本设置为纯静态  # 设置反向代理 1.先进入网站设置  2.找到反向代理,并进行如下设置  ` 目标URL:http://127.0.0.1:1200` > 部分出现伪静态/nginx主配置/vhost/文件已经存在全局反向代理的错误问题  可能是在Nginx配置文件中找到 “ location / ”,一般来说同一个站的话是不允许有两个location /{} 这样的配置。 这个问题是其实是告诉我们nginx配置文件里面一个网站只能包含一个location /,不然就会产生报错了。 > 第一步,查看网站的相关配置文件,直接点击网站进入详情就可以查看配置文件了。`  从这个配置页面可以看出,没有单独的`location /`规则,而是添加了相关后缀的限制。但是可以看到上面还出现了一个 ` include /www/server/panel/vhost/rewrite/www.123456.com.conf` 重写的规则配置文件。  现在基本可以确定这个网站的配置,没有伪静态配置,也没有其它单独的location /配置。 那问题只能出在了nginx.conf原本的配置文件里面了,可以在下面的路径查看nginx文件配置,也可以直接通过ssh软件登录然后直接修改文件。 > 第二步 到软件商店找到nginx,点击配置文件进行排查  查看这个`nginx.conf `配置文件 ``` user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; stream { log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time'; access_log /www/wwwlogs/tcp-access.log tcp_format; error_log /www/wwwlogs/tcp-error.log; include /www/server/panel/vhost/nginx/tcp/*.conf; } events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; #include luawaf.conf; include proxy.conf; lua_package_path "/www/server/nginx/lib/lua/?.lua;;"; default_type application/octet-stream; server_names_hash_bucket_size 512; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/json image/jpeg image/gif image/png font/ttf font/otf image/svg+xml application/xml+rss text/x-js; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server_tokens off; access_log off; server { listen 888; server_name phpmyadmin; index index.html index.htm index.php; root /www/server/phpmyadmin; location ~ /tmp/ { return 403; } location / { try_files $uri /index.html; } #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log /www/wwwlogs/access.log; } include /www/server/panel/vhost/nginx/*.conf; } ``` 可以看到,确实存在一个location /匹配规则, 虽然这个规则是属于一个server:888端口下的配置,从上方代码中,找到以下字段进行删除保存即可。然后上面代码中,下部分还看到一个Include 文件夹。您可以在此文件夹中找到已通过宝塔面板配置的网站参数配置文件,无需进一步查阅。 删除以下location /, 再去添加反向代理,添加直接成功了。 ``` location / { try_files $uri /index.html; } ```  重新配置完反向代理后,使用域名/ip 访问,出现以下页面说明 rss 配置成功  此时,我们就可以使用rsshub的订阅规则,订阅我们想订阅的内容了。比如我想订阅bing的每日壁纸,这时使用 `https://前面设置的域名/bing` 这个链接就可以在rss阅读器里订阅了。 # 时光机中的RSS动态配置 如果你只想用rss阅读器的话,到这步就结束了。不过现在有个问题,即我们在配置handsome主题时光机中的rss动态配置,可以显示吗?答案:会出现加载失败!  这是因为我们没有安装跨域服务。跨域请求,简单的理解就是,当前发起请求的域与该请求指向的资源所在的域不一样。也就是说,请求别人网站上的资源显示在自己的网站上,必须安装跨域服务。下面就让我们一步步操作吧。 # 搭建跨域服务 首先最新版本宝塔不用繁琐重新搭建手动配置proxy,首先,先下载安装包 方法一:直接ssl 执行以下口令安装 ``` #进入网站根目录 cd /www/wwwroot/ git clone https://github.com/Rob--W/cors-anywhere.git cd cors-anywhere yum install npm -y npm install ``` 方法二:手动下载放到如图所示的路径解压文件 [button color="info" icon="" url="https://wwa.lanzoui.com/iRapHqx1jaj" type=""]下载文件[/button],将其上传到网站根目录并解压,删除原有压缩包。  接下来,只需找到宝塔中的网站,点击node 项目进入,node 版本随意,再次解析一个新的域名出来  点击添加 node 项目,点击添加站点,选择PM2项目,依次命名完,将启动文件设为`cors-anywhere`文件夹下的 `server.js` 文件,其他的保持默认,点击提交。  提交完成后,点击列表中的设置进入,先设置一下新的域名,最后再点击外网映射,一键开启即可  最后配置一下SSL,如果一键申请的话,要选择手动DNS解析即可  如图所示,证明跨站服务已经安装成功,注意这次一共使用 2 个域名,1 个为 rsshub 使用的域名,1 个为跨站服务域名 # 重配时光机 综上,rsshub和跨域服务地址就配好了。 * rsshub服务地址:A域名 123.com * 跨域服务地址: B域名 1234.com * 时光机中的跨域使用:`https://123.com/https://1234.com/rsshub路由地址` 此时,在主题后台中的时光机配置中,打开RSS动态内容配置: ``` {"id":"bing","name":"Bing壁纸","url":"https://123.com/https://1234.com/bing"}, {"id":"weibo","name":"weibo","url":"https://123.com/https://1234.com/weibo/user/ 这里为自己的微博 id"} ``` 保存设置,继续访问时光机页面,发现已经可以成功获取到内容。 Loading... > 基于订阅服务需求,在宝塔面板服务中使用跨站订阅服务的搭建详细教程 # 安装跨站订阅所需服务 在宝塔的软件商店里搜索Docker管理器安装  # 配置Docker ## 获取镜像 打开刚刚安装好的Docker管理器点击设置,找到 `镜像管理` - `获取镜像` ,输入 `diygod/rsshub` 获取rsshub镜像  # 创建Docker容器 打开 `容器列表` - `创建容器`,具体配置如图所示:  1. 端口映射为1200 2. 将目录 `/www/wwwroot/rsshub/` 映射到目录 `/usr/src/app/` 3. CPU权重 30 配置完成后,容器就创建成功了  # 新建网站并反向代理 域名填写服务器IP或者域名地址,php版本设置为纯静态  # 设置反向代理 1.先进入网站设置  2.找到反向代理,并进行如下设置  ` 目标URL:http://127.0.0.1:1200` > 部分出现伪静态/nginx主配置/vhost/文件已经存在全局反向代理的错误问题  可能是在Nginx配置文件中找到 “ location / ”,一般来说同一个站的话是不允许有两个location /{} 这样的配置。 这个问题是其实是告诉我们nginx配置文件里面一个网站只能包含一个location /,不然就会产生报错了。 > 第一步,查看网站的相关配置文件,直接点击网站进入详情就可以查看配置文件了。`  从这个配置页面可以看出,没有单独的`location /`规则,而是添加了相关后缀的限制。但是可以看到上面还出现了一个 ` include /www/server/panel/vhost/rewrite/www.123456.com.conf` 重写的规则配置文件。  现在基本可以确定这个网站的配置,没有伪静态配置,也没有其它单独的location /配置。 那问题只能出在了nginx.conf原本的配置文件里面了,可以在下面的路径查看nginx文件配置,也可以直接通过ssh软件登录然后直接修改文件。 > 第二步 到软件商店找到nginx,点击配置文件进行排查  查看这个`nginx.conf `配置文件 ``` user www www; worker_processes auto; error_log /www/wwwlogs/nginx_error.log crit; pid /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; stream { log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time'; access_log /www/wwwlogs/tcp-access.log tcp_format; error_log /www/wwwlogs/tcp-error.log; include /www/server/panel/vhost/nginx/tcp/*.conf; } events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; #include luawaf.conf; include proxy.conf; lua_package_path "/www/server/nginx/lib/lua/?.lua;;"; default_type application/octet-stream; server_names_hash_bucket_size 512; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/json image/jpeg image/gif image/png font/ttf font/otf image/svg+xml application/xml+rss text/x-js; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server_tokens off; access_log off; server { listen 888; server_name phpmyadmin; index index.html index.htm index.php; root /www/server/phpmyadmin; location ~ /tmp/ { return 403; } location / { try_files $uri /index.html; } #error_page 404 /404.html; include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log /www/wwwlogs/access.log; } include /www/server/panel/vhost/nginx/*.conf; } ``` 可以看到,确实存在一个location /匹配规则, 虽然这个规则是属于一个server:888端口下的配置,从上方代码中,找到以下字段进行删除保存即可。然后上面代码中,下部分还看到一个Include 文件夹。您可以在此文件夹中找到已通过宝塔面板配置的网站参数配置文件,无需进一步查阅。 删除以下location /, 再去添加反向代理,添加直接成功了。 ``` location / { try_files $uri /index.html; } ```  重新配置完反向代理后,使用域名/ip 访问,出现以下页面说明 rss 配置成功  此时,我们就可以使用rsshub的订阅规则,订阅我们想订阅的内容了。比如我想订阅bing的每日壁纸,这时使用 `https://前面设置的域名/bing` 这个链接就可以在rss阅读器里订阅了。 # 时光机中的RSS动态配置 如果你只想用rss阅读器的话,到这步就结束了。不过现在有个问题,即我们在配置handsome主题时光机中的rss动态配置,可以显示吗?答案:会出现加载失败!  这是因为我们没有安装跨域服务。跨域请求,简单的理解就是,当前发起请求的域与该请求指向的资源所在的域不一样。也就是说,请求别人网站上的资源显示在自己的网站上,必须安装跨域服务。下面就让我们一步步操作吧。 # 搭建跨域服务 首先最新版本宝塔不用繁琐重新搭建手动配置proxy,首先,先下载安装包 方法一:直接ssl 执行以下口令安装 ``` #进入网站根目录 cd /www/wwwroot/ git clone https://github.com/Rob--W/cors-anywhere.git cd cors-anywhere yum install npm -y npm install ``` 方法二:手动下载放到如图所示的路径解压文件 <button class=" btn m-b-xs btn-info " onclick="window.open('https://wwa.lanzoui.com/iRapHqx1jaj','_blank')">下载文件</button>,将其上传到网站根目录并解压,删除原有压缩包。  接下来,只需找到宝塔中的网站,点击node 项目进入,node 版本随意,再次解析一个新的域名出来  点击添加 node 项目,点击添加站点,选择PM2项目,依次命名完,将启动文件设为`cors-anywhere`文件夹下的 `server.js` 文件,其他的保持默认,点击提交。  提交完成后,点击列表中的设置进入,先设置一下新的域名,最后再点击外网映射,一键开启即可  最后配置一下SSL,如果一键申请的话,要选择手动DNS解析即可  如图所示,证明跨站服务已经安装成功,注意这次一共使用 2 个域名,1 个为 rsshub 使用的域名,1 个为跨站服务域名 # 重配时光机 综上,rsshub和跨域服务地址就配好了。 * rsshub服务地址:A域名 123.com * 跨域服务地址: B域名 1234.com * 时光机中的跨域使用:`https://123.com/https://1234.com/rsshub路由地址` 此时,在主题后台中的时光机配置中,打开RSS动态内容配置: ``` {"id":"bing","name":"Bing壁纸","url":"https://123.com/https://1234.com/bing"}, {"id":"weibo","name":"weibo","url":"https://123.com/https://1234.com/weibo/user/ 这里为自己的微博 id"} ``` 保存设置,继续访问时光机页面,发现已经可以成功获取到内容。 最后修改:2025 年 02 月 19 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 4 喜欢我的文章吗? 别忘了点赞或赞赏,让我知道创作的路上有你陪伴。