10-Caddy

企业级的 Web 服务器非常多,Nginx、Tomcat、Apache、IIS、FastAPI、Flask 等。

这款开源项目,是一款采用 Go 语言开发的 Web 服务器,具备自动 HTTPS 功能和高度可配置性

Image

Github 地址open in new window

1. Caddy是什么?

  • Caddy 是一款现代化的 Web 服务器,其宗旨在于简化配置与管理工作。它能够自动获取并刷新 TLS 证书,保障所有网站默认采用 HTTPS 进行服务。Caddy 的设计理念是打造一个既安全、高效又用户友好的服务器解决方案
  • 在 Web 服务器领域,Caddy 不可避免地会被拿来与其行业巨头 Nginx 相比较。尽管在市场份额上,Caddy 还远远不及 Nginx,但在 GitHub 上,Caddy 的星标数量确实已经超越了 Nginx
Image

Caddy 的特性如下所示:

  1. 自动 HTTPS:Caddy 出厂即自带 HTTPS 功能,并能自动处理 TLS证书的获取与管理
  2. 配置简便:既支持轻便的 Caddyfile 配置,也支持功能强大的JSON 配置格式
  3. 配置灵活性:利用 JSON API,可以实现配置的实时动态更新
  4. 代理服务器:具备灵活而强大的 HTTP 反向代理能力
  5. 静态资源托管:作为一个生产环境就绪的静态文件服务器,经受过数万亿请求的考验,并已证实可扩展至数十万站点
  6. 全平台兼容:兼容 Linux、Windows、macOS 等多种操作系统
  7. 高效性能:采用 Go 语言开发,确保了高效性能和内存使用的安全性

2. 一键部署

1. 包管理器

可以通过 Linux 的包管理工具来安装 Caddy。eg:在 Ubuntu 系统上,可以按照以下方式进行:

sudo apt install caddy

2. 二进制安装文件

Caddy 项目在其 GitHub的 Releases 页面上提供了预编译的版本。可以根据自己的操作系统选择合适的软件包,下载 Caddy,并将可执行文件放置到系统的 PATH 路径中即可使用

Image

3. 自动HTTPS

自动 HTTPS 功能为您的所有网站预设了 TLS 证书,并确保它们持续更新。此外,它还能自动将 HTTP 流量重定向至 HTTPS!Caddy 采用安全和现代化的默认设置,无需停机、额外配置或依赖其他工具。Caddy 通过Let's Encrypt 或 ZeroSSL 的证书,为公共 DNS 名称启用 HTTPS。Caddy 负责更新所有管理的证书,并且自动将 HTTP 请求(默认使用端口80)转向H TTPS(默认使用端口443)