前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Debian 9 安装配置 Caddy Server

Debian 9 安装配置 Caddy Server

作者头像
Debian中国
发布2018-12-20 16:03:38
3.6K0
发布2018-12-20 16:03:38
举报
文章被收录于专栏:Debian中国Debian中国

Caddy 是一个用 Golang 开发的高效 Web Server,相比 Nginx,它的配置和使用要简单很多,能自动开启 HTTPS、并且支持 HTTP/2 和 QUIC。

下载安装 Caddy

首先去 Download Caddy 选择你需要的插件,然后复制下方的 One-step installer script (bash),例如我的是

代码语言:javascript
复制
$ curl https://getcaddy.com | bash -s
http.cache,http.cors,http.expires,http.filemanager,http.git,http.ipfilter,http.minify,http.nobots,http.ratelimit,http.realip,tls.dns.cloudflare

安装完后输入 which caddy,不出意外的话会输出 /usr/local/bin/caddy

至此,安装完毕,但是目前它不会开机自启,只是简单地把二进制文件下载下来,所以下一步要注册服务。

注册服务到Systemd

这里我使用的是官方提供的脚本 caddy.service,其他系统也可以在这里找到相应的脚本。

(adsbygoogle = window.adsbygoogle || []).push({});

把这个文件下载到 /etc/systemd/system/ 。

代码语言:javascript
复制
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

创建所需目录,我图方便没有修改脚本直接使用默认值了,如果有特殊需求,可以自己更改目录。

代码语言:javascript
复制
sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo touch /etc/caddy/Caddyfile

sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

sudo mkdir /var/www
sudo chown www-data:www-data /var/www

上面创建了三个目录,/etc/caddy 用了存放 Caddy 的配置文件,/etc/ssl/caddy 存放证书,/var/www 是默认的网站目录。

接着,重新加载 systemd daemon,让配置生效。

代码语言:javascript
复制
sudo systemctl daemon-reload

让 Caddy 开机自启:

代码语言:javascript
复制
sudo systemctl enable caddy.service

至此,Caddy 已经成功注册服务,并能够开机自动运行了。

配置Caddy

这部分的内容我不打算详细记录,主要是官方文档已经写的很详细了。下面是我的配置,

代码语言:javascript
复制
example.com {
  proxy / 127.0.0.1:9001 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
  }

  gzip
  header / -Server
  header / Strict-Transport-Security "max-age=31536000;"
  tls user@example.com {
    protocols tls1.0 tls1.2
    dns cloudflare
  }
}

如果要使用 DNS 的方式认证域名的话,需要设置环境变量,修改 /etc/systemd/system/caddy.service ,加入环境变量,我使用的是 CloudFlare 的 DNS,所以我需要添加 CLOUDFLARE_EMAIL 和 CLOUDFLARE_API_KEY ,其他 DNS 看这里

代码语言:javascript
复制
[Service]
...
Environment=CADDYPATH=/etc/ssl/caddy
+ Environment=CLOUDFLARE_EMAIL=xxx
+ Environment=CLOUDFLARE_API_KEY=xxx
...

写完配置后输入 sudo systemctl start caddy.service 启动 Caddy。输入 journalctl --boot -u caddy.service 可以查看日志。

启用 QUIC

关于 QUIC 的介绍,可以看一下这篇文章,一句话概况呢就是减少 TLS 握手次数,加快网站速度。

修改 /etc/systemd/system/caddy.service ,在 ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp 后面加上 -quic ,即

代码语言:javascript
复制
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp -quic

然后重新加载 Systemd,并重启 Caddy

代码语言:javascript
复制
sudo systemctl daemon-reload && sudo systemctl restart caddy.service

同时,别忘了给主机开放 443 (UDP) 端口。

目前 QUIC 只有 Chrome 支持,并且需要手动开启(默认只有白名单域名启用)。访问 chrome://flags/#enable-quic,切换为 Enabled 即可。开启后,重启 Chrome,访问网站,通过 Chrome DevTools – Security 可以看到协议已经是 QUIC 了。

关于性能

Caddy 是 Go 写的,性能方面是稍落后于 Nginx 的,但其实对于小站来说,这一点性能差距是可以忽略的,毕竟 You Are Not Google 。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载安装 Caddy
  • 注册服务到Systemd
  • 配置Caddy
  • 启用 QUIC
  • 关于性能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档