云原生构建(CNB)+腾讯云COS + Hexo 部署静态博客网站
云原生构建(Cloud Native Buildpacks,CNB)是一款基于 Docker 生态,对环境、缓存、插件进行抽象,通过声明式的语法,帮助开发者以更酷的方式构建软件的工具,本文将介绍如何使用 CNB 构建 Hexo 静态博客,并部署到腾讯云对象存储(COS)。 前提条件 注册云原生构建(CNB)账号,并完成实名认证,点此注册 已完成CNB组织的创建,注册完成后,在右上角头像处,点击我的组织,然后点击创建组织,按提示完成组织创建 已开通腾讯云对象存储(COS)服务 操作步骤新建代码仓库 登录云原生构建(CNB)控制台,在右上角头像处,点击我的仓库,然后点击创建仓库,按提示完成仓库创建仓库归属:选择你的组织仓库名称:填写你的仓库名称仓库描述:填写你的仓库描述公开性:选择是否公开,建议私有 点击创建,完成仓库创建 创建完成后,页面将提示仓库暂未完成初始化,您可以选择以下任一方式完成仓库的初始化,这时点击云原生开发 等待环境初始化完成,点击使用 WEB IDE 打开,进入代码编辑界面 在编辑器的终端中,输入以下命令,克隆 Hexo...
使用 QuicTLS 编译 Nginx 并开启 Quic 或 HTTP/3
之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP/3 的文章,详见 Nginx 编译开启 Quic 或 HTTP/3。但是由于 BoringSSL 上个月发布了一个破坏性的更新导致编译出错,虽然最后解决了问题但回头想想觉得还是可以转向更稳定、兼容性更好的 QuicTLS,所以本文将为您介绍如何使用 QuicTLS 编译 Nginx 并开启 Quic 或 HTTP/3。 安装依赖1234567891011121314# Debian 11或12apt updateapt install build-essential ca-certificates zlib1g-dev libpcre3 libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial libunwind-dev pkg-config libjemalloc-dev# Ubuntu...
利用腾讯云轻量应用服务器搭建 WHOIS 查询接口
WHOIS 是一个用于查询域名/IP/ASN 信息的协议,可以查询资源的注册信息等,本文将介绍如何利用轻量应用服务器搭建 WHOIS 查询接口。 部署轻量应用服务器 购买腾讯云轻量应用服务器的步骤本文不再赘述,您可以通过腾讯云活动或在轻量应用服务器控制台新建购买。 本文以 Debian 12 为例 登录轻量应用服务器 打开轻量应用服务器控制台找到您的实例,并点击登录。 点击登录登录到服务器。 输入sudo su切换到 root 用户,然后输入cd /root进入 root 用户的家目录。 安装 WHOIS 工具安装依赖 更新软件包。1apt update && apt upgrade -y 在终端输入以下命令安装redis-server。1apt install redis-server -y 安装 WHOIS 打开Releases页面,找到最新的版本,选择系统对应的版本复制下载链接,轻量应用服务器一般为amd64架构。 在终端输入以下命令下载并解压。123mkdir whois && cd whoiswget...
什么是 CNAME 展平?
有些小伙伴们会经常遇到一个问题,在当前主机记录已经存在 CNAME 类型的记录后再在当前主机记录下添加其他记录类型时会提示某某类型记录和 CNAME 记录可能存在冲突,甚至有些解析服务商会直接不允许添加,比较常见的就是将主域名解析至 CDN 服务商提供的 CNAME 记录,然后再添加 MX(邮箱服务记录)时会碰到这个问题,这是为什么,该如何解决呢?接下来就让我们一起来了解一下吧。 为什么会出现这个问题?在 DNS 标准文件 RFC 1034 中,对 CNAME 记录的定义如下: Identifies the canonical name of an alias. 译文:标识别名的规范名称。 翻译起来很拗口,但简单的来说 CNAME 记录就是把一个域名托管给另一个域名,该域名的所有解析记录都会被托管给另外一个域名,包括 MX、TXT、AAAA、A 等。我们以ddnsip.cn这个域名为例,它的解析记录如下: 在图中我们可以看到,ddnsip.cn这个域名通过 CNAME...
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 国内站和国际站(暂仅支持国内站,国际站部分接口官方团队正在排期适配,预计 2024Q2 完成),不再需要针对国内站和国际站单独适配,同时支持使用子账号 API 密钥申请证书,权限可细分控制,接口更加稳定,使用更加方便、安全。 2023-09-25 更新:腾讯云 API3.0 脚本已合并到 acme.sh master 分支,可直接升级 acme.sh...
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 计费说明。 前提条件 域名解析托管在...
记一次使用 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...
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。 2024年04月11日更新:大部分系统下默认存在着www-data用户组和www-data用户,所以不再使用原来的www用户和www用户组进行编译。 2024年03月07日更新:最终使用 C++ 链接构建 Nginx,以解决 BoringSSL 编译问题。2024年02月20日更新:通过在 Nginx 邮件社区讨论得到了一个解决方案,可以将 libssl 构建为共享库来解决这个问题,详见...
利用 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 的方法就不介绍了,直接丢配置文件了。 文末有现成的,如果你不想自己搭建的话可以直接使用。 配置示例获取...