BIND 9+CloudNS+NS1 (NSONE) 搭建高可用 DNS 服务
本文介绍如何使用 BIND 9+CloudNS+NS1 (NSONE) 搭建高可用 DNS 服务,一般来讲,对于高可用的场景来说,单一的 DNS 服务商提供的 DNS 服务无法满足灾备的需求,所以我们需要使用多个 DNS 服务商来进行冗余备份,本文将指导您使用 BIND 9 作为主 DNS 服务器(不对外提供服务),CloudNS 和 NS1 (NSONE) 作为从 DNS 服务器(对外提供服务)来搭建高可用 DNS 服务。
本文部分内容将指导您如何使用自己的域名作为 DNS 服务器地址,以下简称Vanitydns,如果您不需要实现该效果,可以按说明跳过相关步骤。
前提条件
服务器/云服务器:BIND 9 对配置要求不高,如您的解析记录数量较少,一般 1 核 1G 的服务器即可满足需求;该服务器 53 端口需要对外开放,如果您使用的是云服务器,需要在云平台的安全组中添加 53 端口的入站规则(TCP&UDP)。
系统环境:本示例中使用的是 Debian12
DNS 服务域名(Vanitydns 需要):为了实现服务的高可用性,至少需要两个域名,这两个域名需要在 ...
使用 acme.sh 为在腾讯云(DNSPod)解析的域名自动申请证书(API3.0 / 腾讯云(DNSPod)API 密钥版本)
ACME(自动证书管理环境)是一个互联网工程任务组维护的协议,它允许自动化 Web 服务器证书的部署,acme.sh 是支持 ACME 协议流行的客户端之一,可以通过其实现 SSL 证书的自动申请、续期等等。一直以来,使用 acme.sh 为域名申请证书都是通过 DNSPod API 来实现的,但由于 DNSPod API 后续将不再维护,同时旧版DNSPod API 将不再有服务承诺,以及旧版 API 存在着接口不稳定、权限无法细分控制、国内站和国际站接口不统一等问题,因此笔者基于 dns_dp 脚本,适配了腾讯云 API3.0 版本(dns_tencent)。升级后的脚本将同时支持 DNSPod 国内站和国际站(暂仅支持国内站,国际站部分接口官方团队正在排期适配,预计10月完成),不再需要针对国内站和国际站单独适配,同时支持使用子账号 API 密钥申请证书,权限可细分控制,接口更加稳定,使用更加方便、安全。
2023-09-25 更新:腾讯云 API3.0 脚本已合并到 acme.sh master 分支,可直接升级 acme.sh 后使用或通过一键安装脚本,无需再手动下载de ...
DNS+HTTPDNS 实现 CNAME 展平 (CNAME Flattening)
本文将介绍如何使用 DNS (DNSPod) +HTTPDNS 实现 CNAME 展平 (CNAME Flattening)。一直以来,由于 CNAME 记录和任何记录冲突的独有特性,导致一旦在根域使用 CNAME 解析,将导致其他记录无法正常使用,影响 DS (DNSSEC)、MX (邮箱服务)、TXT (SPF、DKIM、DMARC、站长平台验证) 等记录的使用,进而影响依赖这些记录的相关服务(如括号内所示),而 CNAME 展平 (CNAME Flattening) 是解决这个问题的一种方法,但由于 DNSPod 本身不支持 CNAME 展平 (CNAME Flattening),所以本文将介绍如何使用 DNS+HTTPDNS 通过 API 调用的方式实现 CNAME 展平 (CNAME Flattening)。
为确保能精准稳定的获取到 CDN 等厂商提供的 CNAME 记录所对应的解析 IP(调度结果),脚本需要使用 HTTPDNS 服务,HTTPDNS 服务可能产生对应的请求次数费用,具体费用请参考 HTTPDNS 计费说明。
前提条件
域名解析托管在 DNSPod ...
记一次使用 fontTools 优化网页字体(字体文件大小)
一直以来,本站使用的是 HarmonyOS Sans 字体,但由于中文字体文件过大(约 4.3 MB),导致网页加载速度缓慢,不利于弱网环境下的访问。因此,本文将介绍如何使用 fontTools 中的 pyftsubset 对网页字体进行切片,以优化网页字体文件大小。
安装依赖使用前需要安装 Python 3,fontTools 以及 woff2
安装 Python 3Python3 一般系统都有自带,如果没有,可以使用以下命令安装:
12# Debian/Ubuntuapt install python3
安装 fontTools安装完成后,使用以下命令安装 fontTools:
123pip3 install fontTools# 在一些版本的 Debian/Ubuntu 系统中,可能需要使用以下命令apt install python3-fonttools
一些系统可能需要使用 pip 命令,具体可自行尝试。
安装 woff2在对字体文件进行切片后,需要将字体文件转换为 woff2 格式,因此需要安装 woff2 工具:
123456789101112131415161 ...
Nginx 编译开启 Quic 或 HTTP/3
随着最近 Nginx-Quic 分支被合并到了 Nginx 主线,Nginx 1.25.0 版本官方二进制包已经支持 Quic/HTTP3,感兴趣的朋友可以前往 https://nginx.org/en/download.html 或 https://nginx.org/en/linux_packages.html 下载安装,体验一下 Quic/HTTP3 的魅力,本文将主要为您介绍如何通过编译的方式开启 Quic/HTTP3。
2023年11月19日更新:修复了Nginx_brotli编译错误的问题。2023年06月22日更新:更新了关于 HTTP/2 的配置,Nginx 已经弃用了 listen 指令中的 http2 参数,改为 http2 on;,详见 https://hg.nginx.org/nginx/rev/08ef02ad5c54 和 https://nginx.org/en/docs/http/ngx_http_v2_module.html ,如您之前参照过本文编译安装 Nginx,请您重新编译安装后修改配置,可参照示例配置 ...
利用 Nginx 搭建 IP 查询接口
本文将介绍如何利用纯 Nginx 搭建 IP 地址查询接口(只查询 IP 地址,不查询 IP 归属地),如果有查询 IP 归属地的需求,可以参考另一位大佬的一篇文章 纯 Nginx 打造 IP 地址查询接口。
好久不见,这两个月由于一些原因(考试、面试)一直没有更新博客,今天终于有时间了,就赶忙来更新。用 Nginx 来获取 IP 这个方法是去年 8 月份在处理DDNS Openwrt 插件无法更新 IP 的 case 时了解到的,当时插件里获取 IP 的接口 ns1.dnspod.net:6666 由于是早些年写的一个程序仅支持 http/0.9 导致 DDNS 插件无法正常获取 IP 地址,后面一位大佬改用 Nginx 来获取 IP 地址,那次才知道 Nginx 原来还能这么用,简直是学艺不精哈哈哈。
安装 Nginx 的方法就不介绍了,直接丢配置文件了。
文末有现成的,如果你不想自己搭建的话可以直接使用。
配置示例获取 IP(JSON)123456789101112131415161718192021222324252627282930313233343 ...
腾讯云建站 CloudPages 记录(编辑网站)
这是一篇编辑网站操作记录,完整的流程请参考 腾讯云建站 CloudPages 快速构建您的企业网站,等有时间再录个视频哈哈哈哈。
操作记录清空全部页面和区块由于没有适合笔者的模板,所以笔者选择了清空全部页面和区块,然后自己从头开始搭建。
各种删删删,清空为止~
添加区块修改内容编辑导航栏更改logo,网站名称,以及导航栏的菜单。
添加banner区块页面总要有一个头图,要不总感觉哪里怪怪的,所以我们添加一个 banner 区块,然后替换内容即可。
点击添加区块,选择图文通栏,并根据自己的需要选择合适的版式:
添加完成后根据自己的需要修改区块内容及样式:
添加介绍区块设置为 Banner 之后就可以添加各种版块用于介绍了,没有什么特别的限制,根据自己的需要来。我选了一个功能特性的区块:
然后编辑区块内容:
编辑页尾添加完介绍区块之后我们就需要开始编辑页尾了,页尾的内容可以根据自己的需要来,我这里简单的设置一下联系方式等
添加页面一般来说一个页面肯定不够用的,所以我们要额外添加下,添加页面的话就比较简单了,直接点击添加页面,然后根据自己的需要添加即可,这里我添加了一个页面用作表单: ...
如何打造个性化的 DNS 服务器地址(用自己的域名作为 DNS 服务器地址)
分类写成教程了,其实就是闲谈,平时我们如果注意观察的话就会发现挺多大厂域名的 DNS 都比较有个性,比如 qq.com 这个域名的 DNS 服务器为NS1.QQ.COM——NS4.QQ.COM,而我们自己的 DNS 服务器基本上就是千篇一律的f1g1ns1.dnspod.net/xxx.dnspod.net/dns(1-32).hichina.com/ns(1-8).alidns.com等等,那如何用自己的域名做域名 DNS 服务器地址让我们的域名服务器看起来更个性化一些呢?答案就是贴牌(当然有能力你也可以自建)。所谓贴牌 DNS 就是使用解析厂商提供的解析服务,但是 DNS 服务器的域名,替换成你自己的,这个东西叫法比较多,包括像:贴牌 DNS/Vanity Nameservers/DNS Branding/Custom Nameservers/white-label name servers 等等,我比较喜欢 Vanity Nameservers 这个名称,直译过来就是“虚荣的域名服务器”,满足自己的虚荣心哈哈 ...
使用华为云 DNS 拉平 CNAME 记录(CDN 场景)
接上一篇文章使用 DNSPod 拉平 CNAME 记录(CDN 场景)这篇文章将介绍如何使用华为云 DNS 拉平 CNAME 记录(CDN 场景)。
操作场景本文将指导您如何使用华为云 DNS 的 API 实现拉平 CNAME 记录,以解决相关记录冲突的问题。
方法说明不再重复说明了,如有兴趣请看使用 DNSPod 拉平 CNAME 记录(CDN 场景)
前提条件
域名解析托管在华为云 DNS
项目地址https://github.com/KincaidYang/CNAMEFlattening
操作步骤获取脚本Flame 版本该版本适用于腾讯云 CDN、华为云 CDNIPv4 脚本:
1wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv4.py
IPv6 脚本:
1wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv6.py
Fros ...
使用 DNSPod 拉平 CNAME 记录(CDN 场景)
由于 CNAME 跟任何记录都冲突的特性,在根域(@)下添加 CNAME 记录指向 CDN(或其他服务)会导致 mx(邮箱记录)、TXT(一些站长验证)、DS 等常用记录冲突等且多级 CNAME 会导致解析性能下降等问题,所以拉平是一个很不错的解决方案。但目前 DNSPod 并没有提供拉平的功能,所以需要自己写脚本调用 API 实现。(本文以腾讯云 CDN 为例,但是其他 CDN 服务商也可以使用,替换脚本里面的 CNAME 域名即可。)PS:自2019年1月接触互联网行业以来一直在做运营相关的工作,本身也不是学计算机相关专业的,代码写的可能不是很好,欢迎大佬们指正。
操作场景本文将指导您如何使用 DNSPod 的 API 实现拉平 CNAME 记录,以解决相关记录冲突的问题。(以腾讯云 CDN 为例)
前提条件
域名解析托管在腾讯云 DNSPod。
域名已绑定企业版或更高版本套餐。
方法说明流程图实现的方法大体如上图所示,获取 CDN 在31个省份三大运营商的调度结果,然后将调度结果更新到 DNSPod 上。
相关说明
因本人海外访问全部由 Cloudflare 提供服务,且由 ...