Coder Social home page Coder Social logo

xingpingcn / enhanced-faas-in-china Goto Github PK

View Code? Open in Web Editor NEW
583.0 4.0 26.0 4.86 MB

提升部署在cloudflare、vercel或netlify的网页在**的访问速度和稳定性 Improve the access speed and stability in China of web pages hosted on cloudflare, vercel or netlify by merely changing your CNAME record

License: MIT License

Python 96.76% Dockerfile 0.40% Shell 2.84%
china-region netlify vercel-serverless cname-record cloudflare cf-ip selected-ip

enhanced-faas-in-china's Introduction

enhanced-FaaS-in-China

Improve the access speed and stability in China of web pages hosted on cloudflare, vercel or netlify by merely changing your CNAME record from the official one to one I made
提升部署在cloudflare、vercel或netlify的网页在**的访问速度和稳定性

stars commit Hits

Usage

Note

我这里所说的把 cname 记录改为xxx,意思是在你的权威dns服务器那把用户要访问的域名——例如 app.domain.com ——的 cname 记录改为对应平台的优选 cname 记录。

例子1: 我部署在 vercel 的blog.domain.com博客需要加速访问速度,首先要把blog.domain.com的 cname 记录改为官方提供的域名,回到 vercel 的控制台查看 ssl 证书是否生成。生成之后再把 cname 记录改为vercel-cname.xingpingcn.top

例子2: 我需要加速搭建在我的 vps 的网站,我需要使用 cf 作为 cdn 并保护源 ip 。如何使用saas功能

  • 如果你的网站部署在vercel,则把 cname 记录改为:
    • vercel-cname.xingpingcn.top
  • 如果你的网站部署在netlify,则把 cname 记录改为:
    • netlify-cname.xingpingcn.top
  • 如果你的网站部署在netlifyvercel上,则把cname记录改为:
    • verlify-cname.xingpingcn.top

Important

使用此 dns 解析建议:先把 cname 记录改为官方提供的 cname,等ssl/tls证书生成之后再把 cname 记录改为verlify-cname.xingpingcn.top

  • 如果你的网站部署在cf上,则把 cname 记录改为:
    • cf-cname.xingpingcn.top

Important

使用此 dns 解析建议

  1. 如果你的域名托管在 cloudflare,那么使用这个 cname 很有可能会遇到403。建议把你的域名托管在非 cloudflare 平台,然后再在 cf 平台中删除你的站点,之后再使用。
  2. 如果有些服务,例如 cf worker、开启橙色云朵保护 vps 的 IP,必须要把域名托管在 cf,那么建议你使用 cf 的 saas 功能。如何使用saas功能

怎么测速

Warning

无论是哪种方法测试,一定要加协议,然后多个测速网站都测一下,因为测速网站本身也会时不时抽风

  1. 可以把cname记录改后测试
  2. 也可以像下图一样填写相关信息然后测速 how2test

可能存在的问题

  1. 浙江、福建、河南的个别isp访问可能会失败 目前似乎只有泉州被墙(官方的cname也是同样的问题,或许是isp限制导致的)
  2. 对于测速工具的选择,itdog.cn测出来的结果有点问题(会出现大片的红,原因未知),可以试试用boce.com、cesu.net之内的来测

Why to use it

  1. 如果在大陆访问,官方的anycast会将流量大概率路由到东南亚,路线压力很大,但是存在压力较小的美国或者欧洲的路线。
  2. 官方的cname有时在平均速度上是很快的,但是缺乏稳定性,会出现好几个省份都访问不了的情况,又或者个别省份响应时间非常长
  3. 由于存在被墙风险,如果使用单一的平台——例如vercel——则会存在全军覆没的情况,既国内所有地方都不能访问你的网站。

Note

这是优化后的速度

注:目前似乎只有泉州被墙(红);测速结果未能及时更新,现在显示的是之前的测速结果;测速速度没太大变化

vercel中午 vercel中午 cf-22点晚高峰 cf-22点晚高峰

测速对比

Important

注:目前似乎只有泉州被墙(红);测速结果未能及时更新,现在显示的是之前的测速结果;测速速度没太大变化

点击查看结果

cf-22点晚高峰 cf-22点晚高峰 cf-23点晚高峰-官方 cf-23点晚高峰-官方 cf-22点晚高峰-官方 cf-22点晚高峰-官方 vercel-23点晚高峰 vercel-23点晚高峰 vercel-23点晚高峰-官方 vercel-23点晚高峰-官方 netlify-23点晚高峰 netlify-23点晚高峰 netlify-23点晚高峰-官方 netlify-23点晚高峰-官方 vercel中午 vercel中午 vercel中午-官方 vercel中午-官方 netlify中午 netlify中午 netlify中午-官方 netlify中午-官方

How it works

选取cf、vercel和netlify的IP,定时测试速度,选取稳定且快的ip添加到域名的A记录。国内有三网优化,国外统一使用官方提供的A记录。

大概每一小时更新一次。

IP来源

  • vercel

    • vercel ip
    • 官方cname.vercel-dns.com.的A记录
  • netlify

    • 官方所提供的链接的A记录
  • cf

    • 各种cloudflare的付费用户优选ip
  • 境外默认ip

{
    "VERCEL":"76.76.21.21",
    "NETLIFY":"75.2.60.5",
    "CF":"visa.cn."
}

Q&A

Q:为什么设置了你的CNAME解析后网站不能访问?
A:

  • 这大概率是使用了verlify-cname.xingpingcn.top导致的。需要先把CNAME记录改为官方提供的链接,等待SSL证书生成后再重新设置。这是由于该解析包含两个平台的IP,平台每次访问都会获得二者之一的IP,因而认为你在平台所填写的域名并不是你所拥有的。但是一旦生成证书后,证书就会缓存在平台上。

  • netlify支持上传自己的证书。如果还是不行就申请一个能自动续期的证书。

  • 如果你的网站部署在cf上,使用cf-cname.xingpingcn.top,如果你的域名托管在cloudflare,那么在这种情况下使用这个cname很有可能会遇到403。建议把你的域名托管在非cloudflare平台,例如华为云,然后在cf平台中删除你的站点,之后再使用。

  • 如果你只是在测速平台上遇到问题,你可能需要查看怎么测速

Q:和官方提供的cname有什么差别?
A:
  • 官方的cname有时在平均速度上是很快的,但是缺乏稳定性,会出现好几个省份都访问不了的情况,又或者个别省份相应时间非常长
  • 而我的cname在平均速度上可能不是最快的,但平均响应速度尽量维持在1秒内,最长的响应时间控制在2秒内,而返回非200状态码的省份尽量少于等于2个
Q:为什么分路线解析不准确?

A:我使用的是权威DNS服务器自带的路线解析,可能存在误判。如果你想要更加精准的分路线解析,可以自行选取其他DNS服务器——如dnspod——并添加Netlify.jsonVercel.json里的IP到A记录。或使用NS1.COM作为权威DNS服务器,并设置根据ASN进行路线解析。你可以看看我写的ASN列表

Q:为什么有的路线(如电信)的DNS A记录解析是官方提供的默认IP?

A:这是因为该路线的其他IP质量较差,所以暂时停止解析其路线,改用官方提供的默认IP。你可以通过同时将网站部署在vercelnetlify,把cname解析改为verlify-cname.xingpingcn.top,从而提高容错率。两个平台同一线路同时失效的概率要低许多。

Q:为什么在json文件种有的路线是一个空列表?

A: 同上

Custom

如果你想自定义,例如增加第三个平台,如renderrailway等,则需要自己准备测速工具和一个域名,并重写crawler.py,在platforms_to_test新建一个.py文件,仿照文件夹内的其他文件重写run_sub()方法,最后修改config.py文件相关配置。

Star History

Stargazers over time

enhanced-faas-in-china's People

Contributors

x1jumping avatar xingpingcn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

enhanced-faas-in-china's Issues

如果想要使用其他DNS路线解析服务,是否就没办法自动同步地址

Q:为什么分路线解析不准确?
A:我使用的是权威DNS服务器自带的路线解析,可能存在误判。如果你想要更加精准的分路线解析,可以自行选取其他DNS服务器——如dnspod——并添加Netlify.jsonVercel.json里的IP到A记录。

如上,添加A记录的时候,只能添加固定IP到A记录;但是Vercel.json里指示的IP似乎是动态更新的,如果没能及时将IP到A记录更新到最新Vercel.json中指示的IP,这是否会导致解析效果不好?

不是很了解DNS相关知识,望解答,谢谢。

河南福建访问不了

您好,通过杜老师的博客看到了您的项目,同时也使用过Fgaoxing'大佬的项目,均解决不了河南、福建访问的问题,请问您能帮我看一下吗

请教cname问题

目前cf-page替换cname 解析一会儿 cf就会返回code:1000!
而vercel现在root 域名要求是a解析

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.