新兴的web服务器caddy
caddy 是一个像 Apache, nginx, 或 lighttpd 的web服务器。 你要问nginx已经很好了,为什么要用caddy呢? 我觉得caddy最大的特点是用起来简单, 然后呢,它还有下面这些开箱即用的特性: HTTP/2 全自动支持HTTP/2协议,无需任何配置。 Auto HTTPS Caddy 使用 Let’s Encrypt 让你的站点全自动变成全站HTTPS,无需任何配置。当然你想使用自己的证书也是可以的。 Multi-core 因为caddy是golang写的,所以当然可以合理使用多核啦。 IPv6 完全支持IPv6环境. WebSockets Caddy 对WebSockets有很好的支持. Markdown 自动把md转成 HTML ,当然,我后续要给大家介绍更强大的hugo来干这个事情. Logging Caddy 对log格式的定义很容易,更好的满足你日志收集的需求。 Easy Deployment 得益于go的特性,caddy只是一个小小的二进制文件,没有依赖,很好部署。 那么在什么场景下适合尝试使用caddy呢,我推荐从以下场景开始: 作为静态页面的webserver 转发 fastcgi 请求到 php-fpm 服务,比如替换apache或nginx作为wordpress的server 反向代理,管理多个站点 微服务的 API gateway ,我会专门写一篇文章。 有些在nginx上难以开发的需求,为caddy写插件太方便了。 入门 安装caddy 下载 caddy 把caddy放到系统的PATH中,让其可以直接执行。比如Linux中一般习惯放到 /usr/local/bin 简单测试 找一个做测试的临时目录,生成一个测试主页。echo "hello world">index.html 执行 caddy 在另一个终端 curl localhost:2015 或在浏览器访问 (http://localhost:2015) Caddyfile caddy的一个特色就是配置简单,nginx的配置文件群已经越看越晕了。我们来试试: 在当前目录创建这样一个叫Caddyfile的文件: localhost:2020 gzip 这次,我们改变了端口,并且启用了gzip自动压缩数据。运行caddy,去你指定的地址看看吧。 ...