大数跨境

RISC-V公测平台发布:在SG2042上玩转Caddy

RISC-V公测平台发布:在SG2042上玩转Caddy RVBoards
2023-09-21
2
导读:实验介绍:Caddy是由Go语言实现的Web服务器,相比于Apache和Nginx,有以下优势:1、得益于G

实验介绍:

Caddy是由Go语言实现的Web服务器,相比于ApacheNginx,有以下优势:

1、得益于Go语言的特性,可以充分利用多核性能。

2、相比于ApacheNginx,无论是新建静态文件网站,还是做反向代理,Caddy更加容易配置。甚至只需一行命令即可搞定。

3、自动化SSL证书申请,无需手动申请和配置SSL证书,你只管配置域名和开放必要端口(80443),剩下交给CertMagic

现在Caddy虽然在性能上可以和Apache打得有来有回,但是相比于Nginx在每秒处理的请求和负载下的稳定性方面会逊色一些(数据截止至2020511日),而且市场占有率(Caddy目前为:0.2%)却远低于Nginx34.2%)和Apache31.1%)。

 

(数据截止至2023920日,数据来源W3techs

在本次实验中,我们使用最新版本的Caddy2.7.4)。

实验材料:

一台HS-2服务器

实验环境:

CPU:算能SG2042
操作系统:Ubuntu 23.04 (GNU/Linux 6.1.31 riscv64)
内存:128GB

实验步骤:

1、安装Caddy

方式一:直接通过deb包安装

由于Caddy的官方GithubRelease已经有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
或使用其他Github镜像站。

安装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
提示:如果编译时时提示下载超时可以使用goproxy.io提供的代理服务

2、查看Caddy版本

caddy version
我们可以看到版本号为v2.7.4(也有可能是其他版本,反正只要能看到版本号就说明安装成功了)。

接下来我们就利用Cadddy新建一个静态网页的网站:

1、先新建文件夹:

mkdir caddy-sitecd caddy-site/mkdir htmlcd html/
然后新建index.html(主页文件):
vim index.html
(内容自定,可以直接是Hello World,也可以是其他内容)

2、编写Caddyfile配置文件:

vim Caddyfile
内容如下::[端口号] {root * [文件夹所在位置]/caddy-site/htmlfile_server}
3、然后退出保存,执行以下命令:
caddy run
如果要以进程形式运行,可以执行以下命令:
caddy start

 

Caddy会为该服务器新建一个进程,如果要关闭该进程就得通过进程管理器(如htopbtop等)来关闭该进程。

或者进入该Caddyfile所在的文件夹执行以下命令:

caddy stop
服务器启动后,访问[服务器地址]:[你的Caddy服务器端口号],如果显示网页内容,那就说明Caddy正在运行。

Caddy不仅可以作为Web服务器使用,还可以像Nginx一样作为反向代理服务器使用

1、新建一个名叫caddy-proxy的文件夹:

mkdir caddy-proxycd caddy-proxy/
2、编写Caddyfile
vim Caddyfile
Caddyfile内容如下::[端口号] {encode gzipreverse_proxy [被反向代理的地址,我这里填的是localhost:8008,(自己可以搭建一个简易Web网站地址)]}
保存,然后运行:
caddy run或caddy start
访问[服务器地址]:[你的Caddy服务器端口号]即可看到反向代理的网站

当然,你还可以同时在一个Caddyfile下配置多个服务器,只要端口不冲突就行,就比如下面这段内容:

:[端口号] {root * [网站文件夹所在位置]/caddy-site/htmlfile_server}:[端口号] {encode gzipreverse_proxy [被反向代理的地址]}
当然Caddy还支持自动申请SSL证书(ZeroSSL证书或Let's Encrypt证书),但由于实验环境限制,因此我们不再在此展开讨论,感兴趣的可以移步至参考资料来了解如何使用Caddy为反向代理/Web服务器自动获取SSL证书。

实验总结:

通过此次实验,我们了解到了搭建一个Web服务器,除了NginxApache以外,现在有了一个新选择——Caddy。以前我们要搭建一个Web服务器,要么Apache,要么Nginx,而且还要自备SSL证书。现在,Caddy不仅只需要几行即可实现Web服务或反向代理服务,而且只需开放80443端口,可直接通过CaddyLet's EncryptZeroSSL获取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权限试用账号

  1. 发邮件到riscvinfo@perfxlab.com

  2. 加入微信讨论群:加iYuta-R2为好友后可拉入群。

  3. 加入QQ讨论群:906962594(RVBoards·Only RISC-V)

扫描二维码加群👇

  • RISC-V公共测试平台系列文章

  1. RISC-V公测平台发布 ·Stream带宽完整测试

  2. RISC-V公测平台发布 · 我的世界MohistMC

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

【声明】内容源于网络
0
0
RVBoards
内容 0
粉丝 0
RVBoards
总阅读0
粉丝0
内容0