自建DNS系列——gdnsd (支持状态监控、负载均衡的GeoDNS )

一.介绍

之前看兽兽在V2上介绍了gdnsd的文章,马上点了一波收藏,因为CentOS没有现成的包,所以一直放在那懒得折腾。最近遇到CloudXNS这件事之后开始寻思着拿出来折腾下,在折腾了好几天PowerDNS后终于可以腾出手来搞这货了。

这个还是很有特色的,因为它有个插件系统,功能还是挺强大的,因为实现了自带的状态监控(http以及tcp),并且能够通过多个插件配合实现宕机切换,很有意思,还能通过外部命令来进行自定义的检测。此外,和PowerDNS不同的是这个由于使用了libmaxminddb库,支持GeoIP2格式数据库。

二.安装

比起PowerDNS不如的是这个连个spec都不给,我去网上翻来翻去,结合Github历史Commit中的spec撸了个出来,试了下没报错,感动,至于init脚本,其实不用也行,因为gdnsd自带控制,不过为了方便自启我还是找了个,别人写的,试了下还行就懒得自己动手了,已经打包到rpm文件中——>传送门 

官方的依赖有ragel,而且只支持6.x版本(貌似是因为7.0出来的比较晚或者说官方更新的不勤,最后更新还是16年的了),这就带来了一个问题,CentOS6没这个包,CentOS7又只有7.x的,于是我只能顺便打个ragel的包了,然后因为这个依赖colm,于是……还好主要就这俩,其他的rpmforge以及epel源里都有,当然,为了更好的使用我把libmaxminddb也打包了个最新版本。

总而言之,CentOS6的应该是能直接用我的包了,7的同学可以自己研究下_(:з」∠)_如果我哪天换7了也许会做一份……如果想自己编译的同学请参考官方安装指导——>传送门 阅读全文→

自建DNS系列——PowerDNS GeoIP版(多节点,分区解析)

一.原因

自从月初CloudXNS突然翻脸,以及一个星期了,虽然我在最短的时间内知道了这个消息并在V2顺利骗了一波铜币,然后花了一个晚上迁移自己的一堆域名,成功将这个事件的影响降到了最低。但是,针对这种情况还是需要做一些预防,所以把之前攒的自建DNS的相关资料拿出来好好研究了一下,并在这几天中实验了其中一种,基于PowerDNS的GeoDNS方案,发现效果还行,于是打算分享一下,也顺便做个记录。(之后打算研究下兽兽安利过的gdns,不过这玩意好像在Centos上比较蛋疼)

二.安装

由于Centos6平台求稳,所以各种包的版本都比较落后,因此在PowerDNS的官方源中没有支持GeoIP的版本,这特么就很尴尬了,在Github发issue求助被告知因为yaml-cpp版本不够所以只能自己编译后,我就开始了长达两天的修(编)仙(译)过程。

其实吧,一开始没发现官方的Github里有打包脚本,于是只能自己拆Centos6和Centos7的src.rpm包来拼一份spec出来,在折腾半天后发现各种不对劲,于是重新去找,结果在官方的Github里发现了build-scripts/build-auth-rpm这个脚本……蛋疼,好吧,拿来修修改改,加个pdns-backend-geoip进去,然后开始了编译打包大业。接着就碰到了一个简直日狗的问题,成功编译,成功打包,成功安装,然后……查询不出设置的txt记录,提示如下

这就很绝望,因为查询a记录啥都正常,于是怀疑是不是编译过程中有啥依赖有问题,折腾了一天,最后发现……yaml格式的配置文件中txt记录部分少了俩空格……这,我的内心是崩溃的,大哥,你格式不对提醒下啊,别报这种八竿子打不到一起的错误啊。好吧,总算是成功了,所以用Centos6的各位就不用蛋疼了,用我的rpm包就行。 阅读全文→

自建云盘系列——FileManager(基于Go的轻量级解决方案)

一.介绍

Caddy,用Go写的一款相当优秀的Web服务器软件,它有不少很有特色的功能,国内目前来说用的不多,不过也逐渐有越来越多的人知道了,它有个特色的插件功能,其中一款插件是FileManager,可以类似H5ai一样提供一个美化的Index目录列表,但是功能更多,不仅能下载,还能上传。但是,我一直不知道这玩意竟然还有个独立版本,最近Loc有人提到,我才发现这个确实不错。所以另外介绍一下,当然,之后也可能顺便介绍一下FileRun,不过这个免费版我感觉功能限制的有点多,还是需要考虑下。

二.安装

简单到极致,看过我博客以前那些介绍用Go写的程序的文章的同学肯定对某个特点印象深刻,那就是安装贼鸡儿方便,特别是在官方提供现成的二进制文件的情况下,那就是下载--解压--done。FileManager秉承了这个优点,官方甚至不需要你自己下载对应的二进制文件,全是一键脚本,自动判断环境一步到位。

刺激不刺激,当然,你在安装了Caddy的情况下只需要打开http.filemanager插件就行了

此外,现在Docker这么火当然也少不了它

阅读全文→