CertificateManager 使用 dns 授权申请证书 -- gcloud 方式

本文讲解如何使用 dns 授权方式申请 google cloud 证书,通过查阅官方文档可以得知可以使用 gcloud 和 Certificate Manager API 来申请证书,本文使用 gcloud 命令行工具来执行步骤。 创建 DNS 授权 第一步是创建 DNS 授权,使用以下命令来创建: 1 2 3 gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \ --domain="DOMAIN_NAME" gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME 需要将 AUTHORIZATION_NAME 和 DOMAIN_NAME 分别替换为 dns 授权的名称和相应的域名。 先创建 dns 授权然后查看授权的详细信息 1 2 gcloud certificate-manager dns-authorizations create overstarry --domain="overstarry.vip" gcloud certificate-manager dns-authorizations describe overstarry 根据返回的 cname 信息,需要到相应的域名解析中添加 cname 记录. 创建引用 DNS 授权的 Google 管理的证书 接下来 创建引用 DNS 授权的 Google 管理的证书,使用以下命令创建:...

March 29, 2023 · 2 min · overstarry

Google Cloud 清除 CDN 缓存

最近在研究使用 google cloud 的 cdn 服务,本文就来讲解如何清除 cdn 的缓存。 本文介绍了几种清除cdn 缓存的方法。 google cloud console 清除 第一种也是最简单的,就是直接从 google cloud console 后台进行操作,我们打开 console 后台,选择网络服务, 点击负载均衡界面,选择我们要清除的cdn 缓存所使用的负载均衡器,点击缓存页面, 输入想要 cdn 节点清除的路径即可。过了一会,就可以看到操作成功,相应的文件已经失效。 Google Cloud CLI 命令 第二种方法是使用 Google Cloud CLI 使 cdn 缓存文件失效。 Google Cloud CLI 安装 该怎么安装 Google Cloud CLI 呢,有2个办法: 1) 直接下载安装二进制文件 2) 使用 Cloud Shell. 本文是使用 Cloud Shell 进行的操作。 使缓存内容失效 1 使用 gcloud compute url-maps list 列出目前所使用的负载均衡器 2 使用 gcloud compute url-maps invalidate-cdn-cache LOAD_BALANCER_NAME --path "/images/file....

March 25, 2023 · 2 min · overstarry

apisix数据备份

今天我来讲讲如何备份 apisix 的数据,主要是路由、服务、上游等数据。本文中的 apisix 版本为 apisix 3.1.0版本。 接下来由我来介绍几种备份方法。 dashboard 导出备份 介绍的第一种方法是使用 apisix dashboard 进行数据导出,但这种方法有许多缺陷,只能导出 route 数据,其他服务、ssl数据都不能导出,而且新版本(3.0+)dashboard 导出的路由不包含上游服务的数据,不方便进行快速的路由迁移复制(我猜测可能是害怕上游服务信息不一致导致路由错误)。 接下来就来介绍如何进行导入导出。 1 我们打开 dashboard 2 选择要导出的路由,点击 export openapi 3 在新的 apisix dashboard 导入刚刚导出的 openapi 文件并填写相应的信息,导入成功后就可以看到导入的路由信息,相应路由的服务需要补充填写。 根据 admin api 编写相应的脚本 apisix 提供了各种route、service 的admin api 数据接口,我们可以根据官方提供的接口编写相应的脚本。 使用 etcd 备份方案 由于 apisix 默认采用 etcd 进行数据存储,我们可以备份 etcd 数据,到新的 apisix 集群导入备份的数据。 由于我对 etcd 的运维不太熟悉,想要了解 etcd 备份快照,可以查看这条链接。 小结 本文我介绍了3种将 apisix 数据导入导出的方法,3种方法各有各的优缺点,我们需要根据我们具体的情况来使用不同的方法。 参考 https://apisix.incubator.apache.org/zh/docs/dashboard/modules/data_loader/openapi3/ https://apisix.incubator.apache.org/zh/docs/apisix/admin-api/ https://etcd.io/docs/v3.5/op-guide/recovery/ https://github.com/apache/apisix-dashboard/blob/master/api/internal/handler/data_loader/loader/loader.go

March 18, 2023 · 1 min · overstarry

apisix如何添加自定义插件

最近在研究 apisix 插件,想要研究插件的执行流程,为了了解插件的具体运行流程,查看了几种方法来调试:1. inspect plugin 2. 自定义插件调试 等等。 本文介绍了添加启用自定义插件。 简单修改插件 最近在研究 apisix 的 proxy-cache 插件,本文就以 proxy-cache 插件为例子来讲解 docker 环境下如何自定义插件。 我们先从 apisix 官方git库拷贝 proxy-cache 插件代码到本地文件夹。我们对插件的内容进行修改删除,并将插件名称修改为 proxy-cache2, 修改后的插件文件列表如下: 删除了内存缓存的相关内容,只保留了磁盘缓存的内容,并添加了一些日志记录好了解整个插件的整体流程。 apisix 添加自定义插件 接下来需要给 apisix 添加我们修改的 proxy-cache2 插件,通过查看容器的目录,我们需要将插件挂载到 /usr/local/apisix/apisix/plugins 目录下,我们修改 docker-compose 文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: "3" services: apisix: image: apache/apisix:${APISIX_IMAGE_TAG:-3.2.0-debian} restart: always volumes: - ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro - ....

March 12, 2023 · 2 min · overstarry

apisix根据请求host访问不同路径

前言 最近有一个需求,需要配置一个路由,这个路由是子域名形式的,域名类似 xx.apps.overstarry.vip,我们需要根据子域名中的 xx 内容来请求同一个对象存储中不同的文件。 这个需求之前处理过,那时采用了 nginx 来处理主要路径的逻辑,apisix 直接请求 nginx 服务, 也就是大概这样的一种结构: apisix -> nginx -> oss。这次同样的需求,我决定采用2层结构,去除中间的 nginx 层,由 apisix 直接访问 oss 服务。 接下来我就来讲述处理的过程。 过程 使用 proxy-rewrite 处理这个需求,我第一反应是使用 proxy-rewrite 插件来处理,我使用 regex_uri 字段来进行正则替换匹配,添加的插件内容如下: 1 2 3 4 5 6 "proxy-rewrite": { "regex_uri": [ "^(.*).apps0.overstarry.vip(.*)$", "/$1/production$2" ] } 配置完后,请求了几次,发现没有请求成功,通过查看日志发现请求到了奇怪的地址。又仔细的研究了一会,发现是我理解错误了,proxy_rewrite 是根据 uri 进行正则匹配的,没有根据 host 匹配的选项,前面填写的那些是根本不会匹配成功的。 serverless proxy-rewrite 插件不能实现我们的需求,我又查看了 issue列表,发现了一个issue(#7739),里面提到了可以使用插件 serverless 来实现我们的需求。 serverless 介绍 APISIX 有两个 serverless 插件:serverless-pre-function 和 serverless-post-function。 serverless-pre-function 插件会在指定阶段开始时运行,serverless-post-function 插件会在指定阶段结束时运行。这两个插件使用相同的属性。 实现 我们的需求应该是采用 serverless-pre-function 来实现,具体过程描述如下:获得请求的 host, 对 host 进行相应的文本正则替换,将替换的文本和uri 进行组合拼接,得到真正的uri....

March 4, 2023 · 1 min · overstarry