显示标签为“cloudflare”的博文。显示所有博文
显示标签为“cloudflare”的博文。显示所有博文

2023年9月16日星期六

记一次白嫖 cloudflare翻车

    事情大概是这样子的,很早就知道 cloudflare是个好东西,很多功能对于免费用户都是直接开放的,比如 ssl证书和cdn,以及我的技术博客用的page功能也是免费的。最近了解到 work功能可以用来做反向代理的,和我想的一样这功能肯定有人用来反代谷歌。所以也尝试了一下,没想到翻车了。记录一下配置过程吧

    在开始之前首先需要准备

  • cloudflare账号一个
  • 域名一个
1. 创建一个 worker
2. 自定义一下名字,简单点取个 Google 就可以

 3. 输入反向代理js代码,点击保存
// 反代目标网站.
const upstream = 'www.google.com'
 
// 反代目标网站的移动版.
const upstream_mobile = 'www.google.com'
 
// 访问区域黑名单(按需设置).
const blocked_region = ['TK']
 
// IP地址黑名单(按需设置).
const blocked_ip_address = ['0.0.0.0', '127.0.0.1']
 
// 路径替换.
const replace_dict = {
'$upstream': '$custom_domain',
'//archiveofourown.org': ''
}
 
addEventListener('fetch', event => {
event.respondWith(fetchAndApply(event.request));
})
 
async function fetchAndApply(request) {
 
const region = request.headers.get('cf-ipcountry').toUpperCase();
const ip_address = request.headers.get('cf-connecting-ip');
const user_agent = request.headers.get('user-agent');
 
let response = null;
let url = new URL(request.url);
let url_host = url.host;
 
if (url.protocol == 'http:') {
    url.protocol = 'https:'
    response = Response.redirect(url.href);
    return response;
}
 
if (await device_status(user_agent)) {
    var upstream_domain = upstream;
} else {
    var upstream_domain = upstream_mobile;
}
 
url.host = upstream_domain;
 
if (blocked_region.includes(region)) {
    response = new Response('Access denied: WorkersProxy is not available in your region yet.', {
        status: 403
    });
} else if(blocked_ip_address.includes(ip_address)){
    response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', {
        status: 403
    });
} else{
    let method = request.method;
    let request_headers = request.headers;
    let new_request_headers = new Headers(request_headers);
 
    new_request_headers.set('Host', upstream_domain);
    new_request_headers.set('Referer', url.href);
 
    let original_response = await fetch(url.href, {
        method: method,
        headers: new_request_headers
    })
 
    let original_response_clone = original_response.clone();
    let original_text = null;
    let response_headers = original_response.headers;
    let new_response_headers = new Headers(response_headers);
    let status = original_response.status;
 
    new_response_headers.set('cache-control' ,'public, max-age=14400')
    new_response_headers.set('access-control-allow-origin', '*');
    new_response_headers.set('access-control-allow-credentials', true);
    new_response_headers.delete('content-security-policy');
    new_response_headers.delete('content-security-policy-report-only');
    new_response_headers.delete('clear-site-data');
 
    const content_type = new_response_headers.get('content-type');
    if (content_type.includes('text/html') && content_type.includes('UTF-8')) {
        original_text = await replace_response_text(original_response_clone, upstream_domain, url_host);
    } else {
        original_text = original_response_clone.body
    }
 
    response = new Response(original_text, {
        status,
        headers: new_response_headers
    })
}
return response;
}
 
async function replace_response_text(response, upstream_domain, host_name) {
let text = await response.text()
 
var i, j;
for (i in replace_dict) {
    j = replace_dict[i]
    if (i == '$upstream') {
        i = upstream_domain
    } else if (i == '$custom_domain') {
        i = host_name
    }
    
    if (j == '$upstream') {
        j = upstream_domain
    } else if (j == '$custom_domain') {
        j = host_name
    }
 
    let re = new RegExp(i, 'g')
    text = text.replace(re, j);
}
return text;
}
 
 
async function device_status (user_agent_info) {
var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
var flag = true;
for (var v = 0; v < agents.length; v++) {
    if (user_agent_info.indexOf(agents[v]) > 0) {
        flag = false;
        break;
    }
}
return flag;
}
 4. 最后体验发现,翻车了,提示以下错误
    网上搜索和研究了一下,发现这个是由于谷歌的对于反向代理的一个封禁措施,和 ip有关系这个基本上说明基于 cf的反代谷歌的白嫖这条路子断了,白嫖失败。

境外各地区服务器的延迟对比

     前几天买了一张 clubsim香港卡后,顺带从阿里云国际站入手了一台轻量应用服务器。一测发现 在全国各地的 ping表现很亮眼。于是就对比了一下手上的资源,毕竟有些快到期了,对比一下速度也方便决定哪些就不在继续续期了。

    首先,是阿里云新加坡


     然后,最近买的阿里云香港,速度跟内地服务器看不出区别

     博客托管的谷歌云,ping表现其实是非常不错的,可惜涉及到谷歌相关的域名全都被墙了


     因为被墙的原因,把博客套一层 cloudflare。但估计用的人太多了,羊毛被薅的厉害,ping值和访问速度表现都不太行。
    最后看一下搬瓦工的加州地区,CN2加持,感觉美国地区表现都比新加坡的好





2023年9月9日星期六

谷歌 blogger SEO优化技巧总结

背景 

google-blogger


SEO(搜索引擎优化)是一种通过改善网站和在线内容,以提高其在搜索引擎中排名的过程。它的目标是增加有机(非付费)搜索引擎流量,提高网站的可见性,吸引更多的访问者,并最终增加在线业务的成功机会。任何网站想要提升自己的访问量,做好 SEO优化都是有必要的,当然博客也不例外。一般来说谷歌 blogger 默认配置下,对于 SEO的友好程度也是不错的。但是由于 blogger 起源太早,一些遗留问题也确实不符合当下的搜索引擎喜好了。网上搜了一圈,排名第一的月光博客已经总结了十大优化技巧,感觉比较使用。这里在此基础之上继续补充一些细节和额外的优化手段。

针对 blogger 的SEO优化手段

首先是月光博客中的十大优化技巧月光博客十大优化技巧

1. 使用自定义域名

这个显然是最重要的,自定义域名都没有其实就没什么 SEO可言。绑定自定义域名有以下用处

  • 彰显网站个性化,独立性,淡化掉用户浏览的时候认为你博客是寄托在 blogger 平台的意识
  • 有独立域名的搜索引擎单独排名和权重,博客内容和网址更聚焦
  • 万一谷歌停止 blogger服务,可以迁移
设置方法可以参考之前的博文【谷歌 blogger 博客使用教程】

2. 使用 HTTPS

 支持 https加密协议的网站可以获取搜索引擎的更高的权重和收录意愿,且这已经是普遍主流的机制了。在目前的互联网上,不支持https 的才是异类,而且用户在访问不支持 https 协议网站的时候浏览器还会提示一个不安全链接的警告,看着就有一丝的心里不安。

设置方法为:Blogger后台-设置-基本-HTTPS,将“HTTPS 可用性”和“HTTPS 重定向”都选为“是”。

3. 绑定谷歌搜索控制台提交 sitemap

通过提交 sitemap的方式可以让搜索引擎更快地发现和收录你的网站,配置方法是。从设置页面-点击Google Search Console,输入域名绑定后,提交 sitemap。谷歌 blogger 的 sitemap地址为:https://yourblogname/sitemap.xml

4. 修改 robots.txt

Robots.txt(也称为机器人排除协议或协议)是一个用于指导搜索引擎爬虫如何访问您的网站的文本文件
设置方法:进入Blogger后台-设置-搜索偏好设置-自定义 robots.txt,点击修改,输入以下内容:Sitemap: https://youblogname/sitemap.xml

5. 优化文章标题位置

现在网站内容也的标题和站点名称格式一般是,文章页面标题在前,站点名称在后,而 blogger是反过来的。需要调整过来
设置方法为

  1. 设置-主题背景-修改 HTML,建议把内容拷贝下来本地做修改,程序员朋友用上 git管理
  1. 搜索以代码
<title><data:blog.pageTitle/></title>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
           <title><data:blog.pageTitle/></title>
            <b:else/>
            <title><data:blog.pageName/>-<data:blog.title/></title>
        </b:if>

    3. 替换为,上传再保存

6. 优化文章固定链接

    在发布文章的时候,输入标题后,Google Blogger会自动生成一个文章的url链接网址,通常这样的链接网址不适合SEO优化,因此,我们可以在发布文章的时候手动修改文章的固定链接,修改方法是:发布新文章-博文设置-固定链接-自定义固定链接。

7. 重复页面优化

在 html头部增加以下内容
<b:if cond = 'data:blog.pageType == "index" and data:blog.searchQuery == "" and data:blog.searchLabel == "" and data:blog.url != data:blog.homepageUrl'> 
<meta content='noindex' name='robots'/>
</b:if>

8. 填写 meta原标记

进入Blogger后台-设置-搜索偏好设置-元标记,点击修改,输入150个字左右的网站简介和关键字信息。有个写 meta描述的技巧,如果担心描述不规范和专业,可以写完一段内容让 chatgpt整理一下。

9. 自定义robots标记头

进入Blogger后台-设置-搜索偏好设置-自定义robots标头标记,点击修改,可以将“存档并搜索页面”设置为noindex,其他设置为all即可。这样可以让存档和搜索页面里大量重复内容不被索引。

10. 垃圾评论处理

这个优化在浏览量大,有用户评论的时候才能发挥作用。为了限制垃圾评论的,单设置也简单,建议直接设置里打开评论审核就可以。


下面继续补充一些上面没提到的

11.  绑定必应等搜索引擎提交sitemap

与绑定谷歌的搜索控制台类似,必应也有类似的站长工具。www.bing.com/webmasters在中文搜索领域,现在必应的市场份额也很大了。所以加上必应还是很有必要的(百度还是最大的中文搜索引擎,但是估计绑定了也不会收录)

12. 绑定谷歌分析

绑定谷歌分析不是优化对搜索引擎的爬取和收录,单对站长自身分析浏览用户的分布情况有很大作用,从而可以继续针对性的 SEO优化。

13. 文章图片使用cdn加速

blogger 的图片访问速度感觉不是很好,在大陆地区甚至直接无法访问了。这里建议直接使用 cloudflare的 R2储存桶做一个图床,然后自定义域名存放博客图片。

14. 文章图片完善 html所需标记

在添加图片的时候,有些 html的属性完善了可以帮助搜索引擎理解图片内容,在图片加载不出来的时候还做脑补图片的提示作用,在编辑博文加入图片的时候需要注意完善以下图片的标记设置
blog-image-html-tag


设置方法:在图片的高级设置页面

 文章链接完善 html属性设置

在引用外部链接的文章的时候注意完善标记nofollow标记,在引用的链接是外部链接的时候建议把以下两个设置勾选,内部链接则去掉勾选




15. 注重文章的排版

在以上需要注意的配置都完善后,继续要做的 SEO就来到内容本身了。抛开写作水平和内容质量不谈,文章的排版也是需要的。段落层次清晰不进对读者提升浏览体验,搜索引擎也会将其作为一个评估因素。所以在写完后,不要着急发布,利用便器的层级标题和段落整理一下内容也是有必要的。    


谷歌 blogger博客使用教程

     
Blogger是一个Google旗下的免费博客平台,允许用户创建和管理个人博客。下面介绍如何使用谷歌 blogger 创建一个自己的博客。在开始前,需要准备好以下内容
  • 科学上网梯子(大陆地区需要)
  • 谷歌账号
  • 注册一个域名(非必需)

 1. 创建一个Blogger账户

 如果您还没有Google账户,首先需要创建一个。然后,访问Blogger网站https://www.blogger.com并登录您的Google账户。 

 2. 创建新博客 

登录后,您可以点击“创建博客”或“New Blog”来创建一个新博客。您需要选择博客的名称、URL(博客的网址)、模板(外观)等信息。确保选择一个容易记忆和相关的URL。

 3. 选择一个博客模板:

Blogger提供多种博客模板供选择,虽然都挺复古的,但是好在大多数画面都比较简洁,也不算丑。我这里选择的是 simple 主题,主打就是一个简单耐看
theme-setting

4. 博客基本配置

点击左侧设置按钮,可以浏览和设置博客的基本信息,从上往下分别为
  • 博客标题,博客网站的名称
  • 博客语言,设置博客的默认语言,支持互联网上主流语言
  • 网站图标,可以选择一个彰显个性的博客 logo
  • 评论设置,打开评论审核开关,避免垃圾评论
  • 剩余配置基本可以保持默认

5. 自定义域名配置

blogger 支持自定义域名,且提自定义域名的 SSL证书。首先需要到域名服务商购买注册域名,提供域名服务的平台很多,谷歌搜索一个即可。这里推荐一个在用的性价比较高的平台

  1. 点击左侧设置,找到自定义域名,填写域名,建议使用二级域名(如 blog.example.com或者 www.example.com)
  2. 按照提示,配置以下两个地址的 CNAME类型 DNS解析,注意如果使用的是 cloudflare解析服务,最开始注意先把代理关闭(灰色图标为关闭)

  3. 设置完成后把谷歌 blogger 的 https设置打开,等待处理完成后,可以用自定义域名浏览博客,此时也可以把 cloudflare的代理功能打开。

6. IP配置

    添加A 记录加快 HTTPS 生效。可以看到上面的截图中有多条 A 记录,其实它们是可选的,只有当你要在 Blogger 后台开启重定向网域(即访问根域名跳转到绑定的二级域名)时才是必须的。但是 HTTPS 证书的申请需要源服务器 IP,所以添加这些指向 Blogger 服务器的域名可以提高证书下发的成功率。添加这个还有一个原因,后续如果添加谷歌的 Adsense配置,如果没有配置该解析会出现找不到 ads.txt的问题。这部分设置也无需开启代理功能。

    • 216.239.32.21
    • 216.239.34.21
    • 216.239.36.21
    • 216.239.38.21


到此就基本完成了 blogger 博客的创建和个性化设置,可以开始写作了


聊聊最近的手机圈子

      自从8月底华为的mate60系列手机发布后,沉寂很久的机圈又火了起来。很久没看到这么热闹了,先是华为未发先卖的mate60携着麒麟9000S芯片和5G的回归打响第一炮。紧接着是苹果一年一度的科技春晚发布iphone15系列。然后是小米带着澎湃OS的小米14系列杀出来,...