查看原文
其他

Caddy:50K+ Stars 基于Go语言编写的高性能开源服务器,堪比Nginx!

小传 爱编程爱技术 2024-02-24
Caddy 是一个支持 HTTP/2 的跨平台开源 Web 服务器,使用和配置都非常简单。功能强大、可扩展且高性能,基于Go语言编写,支持 HTTP/2, IPv6, Markdown, WebSockets, FastCGI模板,用于为您的网站、服务和应用程序提供服务。
Caddy 开源免费,在GIthub上获取得了 50.3k stars,性能优越,堪比Nginx!

✨Caddy 功能特点

  • 支持三大主流系统:Windows、 Linux、Mac

  • 全自动支持HTTP/2协议,无需任何配置
  • Caddy 使用 Let’s Encrypt 让你的站点全自动变成HTTPS,无需任何配置
  • 合理使用多核,得益于go的特性
  • 完全支持IPv6环境
  • Caddy 对WebSockets有很好的支持
  • 自动把Markdown转成 HTML

  • Caddy 对log格式的定义很容易

  • 易于部署 ,没有依赖

  • 作为反向代理支持主动和被动健康检查、负载均衡、断路、缓存等功能

📤 安装

方式1、本地源码构建方式

注意:这些步骤不会嵌入正确的版本信息
$ git clone "https://github.com/caddyserver/caddy.git"$ cd caddy/cmd/caddy/$ go build
方式2、Github 发行页下载(推荐)
直接从GitHub Releases 发行页下载最新版本的 Caddy,下载解压后将可执行文件【caddy.exe】的路径配置在环境变量 PATH 中即可。
下载地址:
https://github.com/caddyserver/caddy/releases

方式3、命令行安装

  • Debian, Ubuntu, Raspbian稳定版

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-httpscurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.listsudo apt updatesudo apt install caddy
  • Fedora or RHEL/CentOS 8

dnf install 'dnf-command(copr)'dnf copr enable @caddy/caddydnf install caddy
  • RHEL/CentOS 7 yum安装

yum install yum-plugin-copryum copr enable @caddy/caddyyum install caddy
  • Arch Linux, Manjaro, Parabola

pacman -Syu caddy
  • Docker 容器部署

docker pull caddy
  • MacOS Homebrew 命令安装

brew install caddy
  • Windows server 安装

#Chocolateychoco install caddy
#Scoopscoop install caddy
Caddy提供了更加强大的功能,相较于Nginx来说使用Caddy有如下优势:
  • 自动的HTTPS证书申请

  • 自动证书续期以及OCSP stapling等

  • 更高的安全性包括但不限于TLS配置以及内存安全等

  • 友好且强大的配置文件支持

  • 支持API动态调整配置

  • 支持HTTP3(QUIC)

  • 支持动态后端,例如连接Consul、作为k8s ingress等

  • 后端多种负载策略以及健康检测等

  • 本身Go编写,高度模块化的系统方便扩展

🍄 快速体验

1、在caddy根目录下新建一个名为 Caddyfile (无扩展名)的文本文件,如下所示:
# Caddyfile# Your site's addresslocalhost
respond "Hello, world!"

2、在终端执行如下命令,启动caddy

$ caddy start
3、打开浏览器访问 localhost 或使用 curl 访问:
$ curl https://localhost
# 输出Hello, world!

你也可以像 Nginx 那样使用  { }  配置多个站点,如下所示:

localhost {respond "Hello, world!"}
localhost:2016 {respond "Goodbye, world!"}
你甚至可以直接使用Caddy提供的Api来修改配置文件,如下:
curl localhost:2019/load \ -H "Content-Type: text/caddyfile" \ --data-binary @Caddyfile
然后执行  reload  命令加载新配置
$ caddy reload
使用 curl 访问新的配置,正确输出如下:
$ curl https://localhost:2016
# 输出Goodbye, world!

停止 Caddy 时,和 Nginx 一样,执行  stop  命令即可:

$ caddy stop
更多高级配置可参考官方文档:

https://caddyserver.com/docs/

附官网链接:

官网:

https://caddyserver.com/v2

开发手册

https://caddy2.dengxiaolong.com/docs/

开源地址:

https://github.com/caddyserver/caddy

END

点点关注不迷路

本文发表于公众号【爱编程爱技术

关注我们,阅读更多精彩内容

点击上方关注我们,谢谢支持

往期推荐:


Cmder:25k+ stars 开源的命令行终端工具,我愿称之为最强!
Team IDE:高颜值的客户端工具集,开源!
派了个萌的翻译器,开源免费!
Potplayer 播放器发布新版本,高颜值无广告!
frp:70k+ Stars!简单、高效的内网穿透工具
libreoffice:自由免费的全能办公套件
Legado:18k+ stars 开源的小说阅读工具
两款免费、简洁、无广告的实用工具
VanBlog:一款简洁实用优雅的高性能个人博客系统
继续滑动看下一个

Caddy:50K+ Stars 基于Go语言编写的高性能开源服务器,堪比Nginx!

小传 爱编程爱技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存