看了10天的golang, 写了一些东西,参考tj的n写了gvm环境版本控制,不过是用shell写的。
今天在migrate模版引擎的时候, 之前是用martini+ ace 写的站点。 偶然看到了一个封装很规范的go服务器caddy, 所以想要migrate,顺手试了一下给caddy写扩展,项目
caddy为扩展提供了RegisterPlugin
方法,一般在插件包的init
函数中调用,使用方法如下:
caddy.RegisterPlugin("basicauth", caddy.Plugin{
ServerType: "http",
Action: setup,
})
每个插件作为一个包至少有一个或类似于setup
的方法将其和Caddyfile中指明的配置关联起来。
在setup中初始化了一个相应插件的strut,用于编写插件的实际处理流程。
All in all, caddy是个易于扩展的服务器,但其插件必须在编译期确定,通过配置Caddyfile,可以实现预期内的不停机重启, 但大部分时候不适合作为迭代快速的实际提供服务的服务器。