额,mjj上看的一个新玩法,在Heroku部署OneManager,之后用CFWorkers 来加速访问,整个过程就是Onedrive+OneManager+Heroku+CFWorkers来部署一个列表程序。
好处就是不花一分钱,缺点就是折腾起来太麻烦,这篇文章就来详细记录下部署过程。部署好之后下载走的CF Workers的,上传还是你对微软直接上传。
1、准备
1)Onedrive,或Sharepoint。这个大家有的,各种A1,E3,E5,世纪。(Sharepoint默认25T)
2)OneManager
项目:https://github.com/qkqpttgf/OneManager-php
之前写过教程:(宝塔面板安装OneManager-php – Onedrive的列表索引和管理程序)
3)Heroku
官网:https://www.heroku.com/
注意:实测163邮箱不好注册;注册时候需要开着“戴笠”
最好需要注册2个帐号,注册与登录时需要魔法,平时操作时不需要。OneManager配置是保存在环境变量中的,所以不需要一直监控保活,Heroku免费套餐每月550小时,550小时/30天=18.33小时,每天只要访问时间段空出来24-18=6小时没有人访问,这一个月其实就足够使用了,但有些人的网站可能访问人比较多所以还没到月底就用光了。
当然,heroku也可绑卡达到1000小时,同时还能自定义域名。但,SSL却比较麻烦。
4) CF workers,免费的就好!!
这类教程写过很多,不熟悉的可以看这里:(https://www.daniao.org/?s=CF+workers)
2、Heroku部署OneManager
1)首先点开网址(传送门)进入Create New App页面,如图设置:
点击Ddeply app,之后就会自动部署OneManager,部署成功如图:
点击View即可看到效果。
3、访问给定的herokuapp域名,正式安装好程序
1)点击View即可开始安装,这个安装就是OneManager的安装教程了,如果不会,可以看上面的教程。
2)开始安装后,会有个API Key,我们点击新建 API Key 进入 之后即可看到API Key,具体看图:
这之后的设置和OneManager的安装教程一样,这里不在赘述。
3)安装好后登录,在设置中绑定Onedrive或Sharepoint
4)在设置中做些设定(选择好主题,设置好时区等!)
5)换一个Heroku帐号再安装一次(时长够用就无所谓)过程一摸一样,这里省略了。
4、CF Workers部署
1)如何新建就不说了,进入CF Workers后填入以下代码![reply]
// 单日const SingleDay = '111.herokuapp.com'// 双日const DoubleDay = '222.herokuapp.com'// 一切给CF代理,true/falseconst CFproxy = true// 由于heroku不绑卡不能自定义域名,就算绑卡后https也不方便// 另外免费套餐每月550小时,有些人不够用// 于是在CF Workers使用此代码,分单双日拉取不同heroku帐号下的相同网页// 只改上面,下面不用动addEventListener('fetch', event => { let nd = new Date(); if (nd.getDate()%2) { host = SingleDay } else { host = DoubleDay } if (!CFproxy) { let url=new URL(event.request.url); if (url.protocol == 'http:') {url.protocol = 'https:'response = Response.redirect(url.href);event.respondWith( response ); } else {url.hostname=host;let request=new Request(url,event.request);event.respondWith( fetch(request) ) } } else { event.respondWith( fetchAndApply(event.request) ); }})async function fetchAndApply(request) { let response = null; let url = new URL(request.url); if (url.protocol == 'http:') { url.protocol = 'https:' response = Response.redirect(url.href); return response; } url.host = host; let method = request.method; let body = request.body; let request_headers = request.headers; let new_request_headers = new Headers(request_headers); new_request_headers.set('Host', url.host); new_request_headers.set('Referer', request.url); let original_response = await fetch(url.href, { method: method, body: body, headers: new_request_headers }); response = new Response(original_response.body, { status: original_response.status, headers: original_response.headers }) return response;}
[/reply]
注意:修改域名为自己的域名
2)效果图
5、最后
单双日分别填入不同的heroku帐号下的网站(当然2个网站要设置得一模一样),这样每个heroku帐号每个月都只访问15或16天,就算24小时有人访问也才360或384小时。
最后,给workers加上自定义域名的路由!从头到尾都可以是Free的,不看网站页面,光从下载过程来看,可以完全假装CF套在了大盘鸡上,谁也看不出我没服务器。
至于如何给workers加上自定义域名的路由!看之前的教程吧,或者博客搜索关键词:CF workers
参考资料:https://www.hostloc.com/thread-737360-1-1.html
评论前必须登录!
注册