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

下载安装 Caddy

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

$ 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,其他系统也可以在这里找到相应的脚本。

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

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

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

sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo touch /etc/caddy/Caddyfilesudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddysudo mkdir /var/www
sudo chown www-data:www-data /var/www

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

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

sudo systemctl daemon-reload

让 Caddy 开机自启:

sudo systemctl enable caddy.service

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

配置Caddy

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

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}}gzipheader / -Serverheader / 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 看这里。

[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 ,即

ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp -quic

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

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
本文来自云栖社区合作伙伴“Debian社区”,了解相关信息可以关注“Debian社区”。

Debian 9 安装配置 Caddy Server相关推荐

  1. 如何在Debian上安装配置ownCloud

    如何在Debian上安装配置ownCloud 据其官方网站,ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件.它还提供了一个平台,可以轻松地查看.编辑和同步您所有设备的通讯录.日 ...

  2. SharePoint 2016 企业项目管理应用(二,基础安装配置SQL Server 2014 安装)

    SharePoint 2016 企业项目管理应用(二,基础安装配置SQL Server 2014 安装) 关于服务器操作系统的安装配置,这里不做说明,安装完成后执行加域操作. 1.首先修改数据库服务器 ...

  3. drupal mysql配置_Drupal 8在Debian上安装配置MySQL

    本教程介绍为Drupal 8在Debian使用APT安装MySQL,因为使用APT安装方便简单,要安装MySQL需要安装MySQL官方APT软件源. 在Debian上安装MySQL数据库 1)下载My ...

  4. 在CentOS Stream 8上安装配置TFTP Server

    最近自己在单位内部搭建了个zabbix(过段时间在把搭建过程发出),管理所管辖的网络设备及服务器,顺便把网络设备也做个备份,方便日后维护.想到的就是让交换机每日自动备份到tftp服务器上.tftp打算 ...

  5. centos7安装配置sql server 2017 linux教程

    一.安装教程 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker https://docs.mic ...

  6. Debian 10安装配置

    拥有sudo权限 su -gedit /etc/sudoersnano /etc/sudoers 找到 root ALL=(ALL:ALL) ALL 之后在下面添加一行即可 xxx 表示用户名 # H ...

  7. Debian/linux 安装配置ftp服务器

    1.安装 $ sudo apt-get install vsftpd 2.配置 1) 修改vsftpd.conf $ sudo nano /etc/vsftpd.conf 按如下格式 修改,保存. # ...

  8. 用linux搭建ntp服务,使用linux配置NTP Server

    在CENTOS 6.2上面安装配置NTP SERVER 安装NTP: yum install ntp 配置时间源 vi /etc/ntp.conf server 210.72.145.44 serve ...

  9. 配置SQL Server AlwaysOn高可用性组

    In this article, we will learn the step by step configuration of SQL Server AlwaysOn High availabili ...

  10. mint java_Oracle Java 12 (JDK 12)在Ubuntu、Linux Mint或Debian(使用PPA)安装配置

    使用apt命令在Ubuntu.Debian或Linux Mint中安装Oracle Java 12 1.添加Java PPA源并在Ubuntu或Linux Mint(64位)中安装Oracle Jav ...

最新文章

  1. Android强制设置横屏或竖屏
  2. JetBrains放出Java代码质量检查工具Qodana,不了解一下?
  3. 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密
  4. 6.编译器拓展SEH
  5. 数据可视化|实验八 实现scatterplot关系图
  6. 写给前端新手看的一些模块化知识
  7. 去广州见了我大学老师标哥
  8. python画画用哪库好_小白开始学Python最著名的绘图库
  9. Java反射机制API
  10. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地
  11. apt-get 与 apt-cache使用
  12. 官宣了!百度36亿美元收购YY直播,一个用户“值”87.4美元
  13. 源代码 到 可执行程序的过程
  14. php分页基于oracle,PHP实现的oracle分页函数实例
  15. 财务报表越做越丑?这些秒杀Excel的可视化工具,人人都能用
  16. Castle的自定义类型转换
  17. 如何将开源项目部分代码作为private放在github上?
  18. 181021词霸有道扇贝每日一句
  19. php bi系统,bi系统是什么系统
  20. linux下利用yum安装svn

热门文章

  1. as3 Box2d Hello box2d
  2. 06手机消费趋势ZZ
  3. 群体智能优化算法之萤火虫群优化算法(Glowworm Swarm Optimization,GSO)
  4. 【从C到C++学习笔记】面向对象/抽象/封装/继承/多态
  5. 【OpenCV学习笔记】【编程实例】三(将一个图像中的指定区域拷贝到另一个图像的指定区域
  6. C++读取和写入文件(fstream等)
  7. Spyder 常用操作
  8. python_dataframe总结1
  9. 动态的顺序表(C语言实现)
  10. Android的JNI【实战教程】2⃣️--AS下NDK环境配置及第一个工程