使用 Caddy 快速搭建高效自动的 HTTPS 服务器
2016-11-24
Caddy 是一个用 Golang 写的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,并且支持自动化 HTTPS。
官方文档:https://caddyserver.com/docs/getting-started
这里介绍本站的 Caddy 服务器配置过程。从 Nginx 换到 Caddy 整个过程不到10分钟,官方甚至有一个28秒的配置视频。
1. 快速上手
1.1 下载安装
进入 下载页面 勾选需要的模块,选择平台进行下载 。(我的是 Ubuntu x64,因此选择了Linux 64-bit,下载后再上传到 VPS,因为链接是生成的,没有固定链接,囧)
下载后的压缩文件 caddy_linux_amd64_custom.tar.gz
放到网站根目录(跟 index.html 同级),进行解压:
1 | $ tar zxvf caddy_linux_amd64_custom.tar.gz |
会得到 caddy 文件以及 init 文件夹和其他杂项文件。
1.2 运行
在 caddy 解压出来的目录(网站根目录)执行 ./caddy
,这时访问 localhost:2015
你的网站应该已经愉快地跑起来了。如果你在 vps 上进行的此操作,远程访问 http://你的ip:2015 应该也能看到你的站点了。
2. 配置 Caddy
如何自定义 Caddy 服务呢?在你的站点目录里创建一个名为 Caddyfile
的文件,文件的第一行写上监听地址,如:
1 | localhost:8080 |
重新启动 Caddy:执行 ./caddy
,你会发现站点已经运行在8080端口了。
Caddyfile 可以在其他目录,也可以命名为其他你喜欢的名字。只需要在启动 Caddy 时告诉它配置文件在哪:
1 | caddy -conf="../path/to/Caddyfile" |
Caddyfile 语法:查看
3. 实现自动化 HTTPS
Caddy 自动地为你的站点启用 HTTPS。注意:需要配置 host 不能为空,也不能是 localhost 或 ip 地址。
我的静态博客的配置是:
1 | blog.hinpc.com { |
执行 ./caddy
,网站已启动,并且支持 HTTPS 了。它的证书是由 Let’s Encrypt 实现的,并且自动为你的网站申请和续期。
4. 使用 supservisor 来运行 Caddy
在你的 supervisord.conf
文件中,[supervisord]
区域下配置:
1 | minfds=4096 |
supervisord.conf
中添加:
1 | [program:caddy] |
启用:
1 | supervisorctl reread |
参考
https://caddyserver.com/docs/getting-started
http://depado.markdownblog.com/2015-12-07-setting-up-caddy-server-on-debian