实验介绍:
Caddy是由Go语言实现的Web服务器,相比于Apache和Nginx,有以下优势:
1、得益于Go语言的特性,可以充分利用多核性能。
2、相比于Apache和Nginx,无论是新建静态文件网站,还是做反向代理,Caddy更加容易配置。甚至只需一行命令即可搞定。
3、自动化SSL证书申请,无需手动申请和配置SSL证书,你只管配置域名和开放必要端口(80和443),剩下交给CertMagic。

现在Caddy虽然在性能上可以和Apache打得有来有回,但是相比于Nginx在每秒处理的请求和负载下的稳定性方面会逊色一些(数据截止至2020年5月11日),而且市场占有率(Caddy目前为:0.2%)却远低于Nginx(34.2%)和Apache(31.1%)。
(数据截止至2023年9月20日,数据来源W3techs)
在本次实验中,我们使用最新版本的Caddy(2.7.4)。
实验材料:
一台HS-2服务器
实验环境:
实验步骤:
1、安装Caddy
方式一:直接通过deb包安装
由于Caddy的官方Github的Release已经有riscv64架构的deb包了,所以我们直接下载Caddy 的deb包即可。
wget https://github.com/caddyserver/caddy/releases/download/v2.7.4/caddy_2.7.4_linux_riscv64.deb如果从Github下载速度慢可以试试这个:wget https://hub.njuu.cf/caddyserver/caddy/releases/download/v2.7.4/caddy_2.7.4_linux_riscv64.deb
安装deb包
sudo dpkg -i caddy_2.7.4_linux_riscv64.deb
从Github上下载代码并编译即可(如果没有安装Git,可以直接从Release页面上下载源代码压缩包并解压即可):
git clone "https://github.com/caddyserver/caddy.git"cd caddy/cmd/caddy/ 或 cd [解压后的源码文件夹位置]/cmd/caddy/go build
2、查看Caddy版本
caddy version
接下来我们就利用Cadddy新建一个静态网页的网站:
1、先新建文件夹:
mkdir caddy-sitecd caddy-site/mkdir htmlcd html/
vim index.html
2、编写Caddyfile配置文件:
vim Caddyfile
内容如下::[端口号] {root * [文件夹所在位置]/caddy-site/htmlfile_server}
caddy run
caddy start
Caddy会为该服务器新建一个进程,如果要关闭该进程就得通过进程管理器(如htop,btop等)来关闭该进程。
或者进入该Caddyfile所在的文件夹执行以下命令:
caddy stop

Caddy不仅可以作为Web服务器使用,还可以像Nginx一样作为反向代理服务器使用:
1、新建一个名叫caddy-proxy的文件夹:
mkdir caddy-proxycd caddy-proxy/
vim Caddyfile
Caddyfile内容如下::[端口号] {encode gzipreverse_proxy}
caddy run或caddy start
当然,你还可以同时在一个Caddyfile下配置多个服务器,只要端口不冲突就行,就比如下面这段内容:
:[端口号] {root * [网站文件夹所在位置]/caddy-site/htmlfile_server}:[端口号] {encode gzipreverse_proxy [被反向代理的地址]}
实验总结:
通过此次实验,我们了解到了搭建一个Web服务器,除了Nginx和Apache以外,现在有了一个新选择——Caddy。以前我们要搭建一个Web服务器,要么Apache,要么Nginx,而且还要自备SSL证书。现在,Caddy不仅只需要几行即可实现Web服务器或反向代理服务器,而且只需开放80和443端口,即可直接通过Caddy从Let's Encrypt或ZeroSSL获取SSL证书。
参考资料:
https://w3techs.com/technologies/overview/web_server
https://github.com/centminmod/centminmod-caddy-v2#caddy-vs-centmin-mod-nginx-http2-https-benchmarks
https://caddyserver.com/docs/build
https://goproxy.io/zh/
https://caddy2.dengxiaolong.com/docs/quick-starts/https
https://caddy2.dengxiaolong.com/docs/automatic-https
--正文结束--
关于RISC-V公共测试平台

RISC-V高性能处理器公共测试平台。
-
快速使用指南 下载链接: https://www.kdocs.cn/l/cmnYcyFIlVRx
加入我们的RISC-V社区
欢迎关注我们,参与进来共建RISC-V软件生态。加入我们的讨论群后,可以向管理员申请免费的64核RISC-V服务器SUDO权限试用账号。
发邮件到riscvinfo@perfxlab.com
加入微信讨论群:加iYuta-R2为好友后可拉入群。
加入QQ讨论群:906962594(RVBoards·Only RISC-V)
扫描二维码加群👇

RISC-V公共测试平台系列文章
-
RISC-V公测平台发布 · 第一个WEB Server“Hello RISC-V world!” -
RISC-V公测平台发布 ·如何在SG2042上玩转k3s -
“RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog? -
RISC-V公测平台发布:如何在SG2042上玩转OpenMPI -
RISC-V公测平台发布:Compiling The Fedora Linux Kernel Natively on RISC-V -
RISC-V公测平台发布 · Unix Bench完整测试 -
RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能 -
RISC-V公测平台发布 · 7-zip 测试 -
RISC-V公测平台发布 · CoreMark测试报告 -
RISC-V公测平台发布 · 数据库在RISC-V服务器上的适配评估 -
RISC-V公测平台发布 · FFTW的移植和性能对比 -
RISC-V公测平台发布:在SG2042上玩转Caddy(本篇)

