Total Pageviews

Saturday, 10 July 2021

CloudFlare Pages

  CloudFlare 出了个网页功能,于是便计划从 GitLab Pages 迁移到 CloudFlare Pages。主要是因为本站的 301 跳转以及 HSTS 都是通过 CloudFlare 来实现的,这样也就少了回源的开销。

功能方面类似 Netlify,构建的功能很少,只能填一条命令,还会自动安装一大堆不需要的软件,功能上也远少于 GitLab CI。不过有需要可以先用其他的 CI 构建好,再部署到 CloudFlare Pages。
当然,也有一些不错的功能,比如预览部署,每一次部署都有一个域名用于预览,这样就可以很方便地 review pull requests,还可以用 CloudFlare Access 管理预览部署的访问权限。
还有一个很坑的特性,会把链接末尾的 .html 通过 308 跳转掉,我只好修改 permalink 了。

---------------------------

cloudflare pages(静态网站服务)

 https://pages.cloudflare.com/

demo site: https://zhao-v1z.pages.dev/

---------------------------------------------------------------------------------------

使用 Cloudflare Pages 进行反向代理

最近群里几位大佬为大家分享了好几个容器的使用方法,例如 Replit Doprax 、Deepnote 等。在使用过程中,要么平台分配的域名被墙,要么速度不稳定,需要配合 Clondflare CDN 使用。但是 Clondflare Workers 分配的域名已被污染,鉴于有些小伙伴没有域名,今天就为大家分享使用 Cloudflare Pages 进行反向代理的方法。
一、使用条件
需要有 Github 及 Clondfiare 的账号。
二、在 Github 上建立仓库并添加代码
1、登录 Github 后,如下图所示,建立一个名为 Cloudflare Pages 的私库。

 
2、点击 creating a new file 按钮,创建文件。


3、创建一个名为 _worker.js 的文件,然后保存。
 

用你需要反代的域名(平台分配被墙的域名)替换第5行中的 www.hicairo.com 。
注意:域名中不要加https,http等字符。
JavaScript
export default {
  async fetch(request, env) {
    let url = new URL(request.url);
    if (url.pathname.startsWith('/')) {
      url.hostname = 'www.hicairo.com'
      let new_request = new Request(url, request);
      return fetch(new_request);
    }
    return env.ASSETS.fetch(request);
  },
};1234567891011
三、在 Cloudflare 中设置 Cloudflare Pages 
1、登录 Cloudflare ,点击左侧菜单中的 Pages 按钮后,然后点击页面右侧的 Create a project 按钮。

 
2、点击页面右侧的 Connect to Git 按钮。

 
3、选择 GitHub 后点击 Connect to GitHub 按钮。

 
4、页面跳转至 Github ,点击 Install & Authorize 按钮。

 
5、页面跳转回 Cloudflare ,选择你刚才创建名为 Cloudflare Pages 的仓库,然后点击 Begin setup 按钮继续。

 
6、Project name 可以使用默认,也可以随便填写,然后点击页面底部的 Save and Deploy 按钮。


7、等待部署完成后,页面中会出现如图示内容,其中显示的域名就是 Cloudflare Pages 平台为你分配的域名,*.pages.dev 域名目前还没有被污染,通过该域名可以正常打开您的站点。

四、添加自定义域名
由于 pages.dev 域名在某些地区已被污染,添加自定义域名是必要的。前提是你已拥有一枚域名,并托管在 Cloudflare 。如何将域名托管在 Cloudflare ,请参考(V2ray使用Cloudflare中转流量,拯救被墙的IP:
https://www.hicairo.com/post/24.html )第五章节,本文不再赘述。
1、点击页面左侧菜单中的 Pages ,然后在页面右侧点击刚才创建好的项目名称。

2、点击 Custom domains ,然后点击 Set up a custom domain 按钮,添加自定义域名。

 
3、填入域名然后点 Continue 按钮。例如:我在 Cloudflare 上托管了的域名为  ifeng.ml,我添加的自定义二级域名 example.ifeng.ml 。


4、点击 Activate domain 按钮。


5、等待 Initializing 完成,域名 Verifying 完成后,会出现 Active 字样。这时说明自定义域名已经设置成功了,你可以使用自定义域名访问你的站点。这一步正常情况下需要 1-2 分钟时间。

本文链接:https://www.hicairo.com/post/59.html

------------------------------------------------------

一个使用 Cloudflare Pages 创建的 URL 缩短器。A URL Shortener created using Cloudflare Pages.

d.131213.xyz/ 

一个使用 Cloudflare Pages 创建的 URL 缩短器

Demo : https://d.131213.xyz/

利用Cloudflare pages部署

  1. fork本项目
  2. 登录到Cloudflare控制台.
  3. 在帐户主页中,选择pages> Create a project > Connect to Git
  4. 选择你创建的项目存储库,在Set up builds and deployments部分中,全部默认即可。
  5. 点击Save and Deploy,稍等片刻,你的网站就部署好了。
  6. 创建D1数据库参考这里
  7. 执行sql命令创建表(在控制台输入框粘贴下面语句执行即可)
DROP TABLE IF EXISTS links;
CREATE TABLE IF NOT EXISTS links (
  `id` integer PRIMARY KEY NOT NULL,
  `url` text,
  `slug` text,
  `ua` text,
  `ip` text,
  `status` int,
  `create_time` DATE
);
DROP TABLE IF EXISTS logs;
CREATE TABLE IF NOT EXISTS logs (
  `id` integer PRIMARY KEY NOT NULL,
  `url` text ,
  `slug` text,
  `referer` text,
  `ua` text ,
  `ip` text ,
  `create_time` DATE
);
  1. 选择部署完成short项目,前往后台依次点击设置->函数->D1 数据库绑定->编辑绑定->变量名称填写:DB 命名空间 选择你提前创建好的D1 数据库绑定

  2. 重新部署项目,完成。

API

短链生成

# POST /create
curl -X POST -H "Content-Type: application/json" -d '{"url":"https://131213.xyz"}' https://d.131213.xyz/create

# 指定slug
curl -X POST -H "Content-Type: application/json" -d '{"url":"https://131213.xyz","slug":"scxs"}' https://d.131213.xyz/create

response:

{
  "slug": "<slug>",
  "link": "http://d.131213.xyz/<slug>"
}
from https://github.com/x-dr/short
(https://github.com/luckypoem/short-by-Cloudflare-Pages) 
example: https://d.131213.xyz/lnzv 

 

 

 

 

 

No comments:

Post a Comment