caddy – 为开发者量身打造的轻巧高效易用的 Web 服务器

这是一个用 Go 语言开发的超轻量级 Web 服务器,无需配置即可快速搭建个人网站或小型应用。它内置了 HTTPS 支持和 Markdown 转 HTML 功能,让你轻松拥有一个安全、美观的网站。与 Apache、Nginx 等传统 Web 服务器相比,这款 Go 服务器更轻量级、更易用。

file

特性

  • 易于配置: 通过 Caddyfile 文件进行简单配置。
  • 灵活配置: 支持使用原生 JSON 格式进行高级配置。
  • 动态配置: 通过 JSON API 实现动态配置。
  • 配置适配器: 如果不喜欢 JSON,可以使用其他适配器。
  • 默认 HTTPS: 自动启用 HTTPS,无需额外配置。
  • 证书管理: 支持 ZeroSSL 和 Let's Encrypt,自动获取公共域名证书。
  • 本地 CA: 为内部域名和 IP 地址提供本地 CA 证书管理。
  • 集群协调: 可以与其他 Caddy 实例协同工作,形成集群。
  • 多证书后备: 如果主证书失效,可以自动切换到备用证书。
  • 高可用性: 在其他服务器因 TLS/OCSP/证书问题宕机时,Caddy 仍然能够正常运行。
  • 生产级性能: 经过大量生产环境验证,适用于高负载场景。
  • 支持多种 HTTP 协议: 默认支持 HTTP/1.1、HTTP/2 和 HTTP/3。
  • 模块化架构: 高度可扩展的模块化架构,可以实现各种功能。
  • 无需依赖: 可以在任何环境运行,无需外部依赖。
  • 使用 Go 语言开发: 比其他服务器具有更高的内存安全性。
  • 易于使用: 界面友好,操作简单。

安装

安装说明

如果要在生产环境中安装 Caddy,强烈建议使用适用于您发行版的官方软件包(见下文列表)。

安装为系统服务:

强烈建议将 Caddy 安装为系统服务,尤其是在生产环境中。

将二进制文件放置在您的 PATH 环境变量目录中:

这样就可以直接运行 caddy 命令,而无需输入完整路径。 您可以使用 echo $PATH 查看 PATH 环境变量的设置路径。(Windows 系统使用 %PATH% 环境变量)

升级 Caddy:

可以用新版本的二进制文件替换旧版本,然后重新启动 Caddy 服务来进行升级。 caddy upgrade 命令可以简化这一过程。

发行版特定安装指南:

Debian、Ubuntu、Raspbian

安装此软件包会自动启动并运行 Caddy,将其作为名为 caddy 的 systemd 服务。 它还附带可选的 caddy-api 服务,默认情况下未启用,但如果您主要通过 API 而不是配置文件配置 Caddy,则应该使用它。

安装完成后,请阅读服务使用说明。

稳定版本安装:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Fedora、RedHat、CentOS

此软件包同时包含 Caddy 的两个 systemd 服务单元文件,但默认情况下不会启用它们。 建议使用 systemd 服务。 如果您确实要使用,请阅读服务使用说明。

Fedora 或 RHEL/CentOS 8:

dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

RHEL/CentOS 7:

yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

Arch Linux、Manjaro、Parabola

此软件包包含大量修改过的 Caddy systemd 服务单元文件,但默认情况下不会启用它们。 这些修改包括自定义启动/停止行为以及 systemd 的 exec 文档中解释的附加沙箱标志,这可能会导致 Caddy 进程无法访问某些主机目录。

pacman -Syu caddy

Docker

docker pull caddy

Windows

choco install caddy

Mac

brew install caddy

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注