ApiSix + Minio灵活管理ads.txt/app-ads.txt等静态文件的解析
问题背景
时不时的,我们需要向一些第三方服务来证明自己的身份,或者域名的所有权。其中一种比较常见的做法就是提供txt域名解析,或者提供该域名下某些特殊文件的访问。
例如,一些广告平台,谷歌Admob、谷歌AdSense、Facebook等,需要使用者在相应的域名下提供ads.txt或者app-ads.txt等静态文件来验证你的身份,防止有人冒充你向广告主出售流量。
一些ssl证书服务也需要你证明你对该域名的所有权。
解决方法
常用的解决方法是,如果你已经在该域名下建立了web网站,那么,可以根据所使用的web应用,创建对应的文件解析。
例如,常见的wordpress就有不少ads.txt和app-ads.txt的管理插件。
如果是Nuxt应用,可以将这些文件放在项目的static目录下。
还有一种做法是,如果使用了网关,例如Nginx等,则可以在网关中添加相应的路由。例如,可以在Nginx中添加一条location解析,将这些文件指向另一个文件夹。
如果你跟我一样,使用ApiSix作为统一网关,然后使用Minio搭建了静态Web站,那么,可以很方便管理这些需求。
简单步骤:
- 在minio中创建一个允许公共访问的public bucket
- 在ApiSix中创建一个路由,需配置
- 路由规则:域名,需要管理的相应域名
- 路由规则:路径,需要指向的静态文件或者文件夹
- 重写path,指向minio的public bucket,匹配正则表达式
^/(.*)$
,替换为/<publick bucket>/${1}
- 路由规则:域名,需要管理的相应域名
- 上传相应文件到minio,文件比较少的话,可以直接通过minio的dashboard来上传,否则就用对应的命令。
完成。
扫一扫关注微信公众号:耿直的IT男阿斌
聊一聊IT男眼中的世界