由这个截图,我们可以看到,目前chrome(69)的QUIC版本是v43,这是个相当新的版本,当然也会对QUIC的server端选择造成困扰。
Caddy Server支持QUIC:Caddy 和我们常用的Apache、Nginx一样,是一个Web Server,而且是使用go语言开发的。相对于后两者,它具备以下一些优点:
内建对HTTP/2的支持
对Let'sencrypt的支持
对QUIC支持
对多核系统的支持
易于部署
对IPv6的支持
其中第2、第3点是满足我们后面的实验的重要功能需求。
安装Caddy server
我们采用的是Centos7系统,安装Caddy使用直接从getcaddy.com直接拉取编译好的版本:
$ curl -s https://getcaddy.com | bash
脚本执行的过程中,需要提供sudo权限让caddy程序安装到/usr/local/bin目录下。
等脚本执行完我们需要为caddy创建一个没有登录权限的用户,如“caddy”:
$ sudo adduser -r -d /var/www -s /sbin/nologin caddy
然后我们要建立www的目录,配置文件caddyfile的目录,及其他一些相关权限:
$ sudo mkdir /etc/caddy
$ sudo chown -R root:caddy /etc/caddy
$ sudo touch /etc/caddy/Caddyfile
$ sudo mkdir /etc/ssl/caddy
$ sudo chown -R caddy:root /etc/ssl/caddy
$ sudo chmod 0770 /etc/ssl/caddy
$ sudo mkdir /var/www
$ sudo chown caddy:caddy /var/www
配置caddy的系统服务
由于我们使用的是Centos 7,使用的是systemd管理系统服务。方便的是,caddy的systemd服务脚本可以从以下地址下载:
$sudo curl -s
https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service-o /etc/systemd/system/caddy.service
我们需要修改一下caddy的service文件:
/etc/systemd/system/caddy.service当中User和Group信息,将它们改为caddy: