Caddy 一个可扩展的服务器平台,默认使用 TLS

Caddy 一个可扩展的服务器平台,默认使用 TLS开源精选 是我们分享 Github Gitee 等开源社区中优质项目的栏目 包括技术 学习 实用与各种有趣的内容 如果主机名或 IP 已知 Caddy 2 的默认协议始终是 HTTPS

大家好,欢迎来到IT知识分享网。

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的Caddy 一个可扩展的服务器平台,默认使用 TLS。

Caddy 一个可扩展的服务器平台,默认使用 TLS

Caddy 是一个强大的、可扩展的平台,可以为您的站点、服务和应用程序提供服务,用 Go 编写。使用Caddy 的 API配置是动态的和可导出的。虽然不需要配置文件,但您仍然可以使用它们;大多数人最喜欢配置 Caddy 的方式是使用Caddyfile。配置文档的格式有多种形式,带有配置适配器,但 Caddy 的原生配置语言是JSON。

特征Caddy

  • 使用Caddyfile轻松配置
  • 强大的配置及其原生 JSON 配置
  • 使用JSON API进行动态配置
  • 如果您不喜欢 JSON,请配置适配器
  • 默认 自动 HTTPS
  • 当其他服务器因 TLS/OCSP/证书相关问题而停机时保持正常运行
  • 在处理数万亿个请求并管理数百万个 TLS 证书后,可投入生产
  • 扩展到数以万计的站点……而且可能更多
  • HTTP/1.1、HTTP/2 和实验性 HTTP/3支持
  • 高度可扩展的 模块化架构让 Caddy 做任何事情都不会臃肿
  • 在没有外部依赖的任何地方运行(甚至没有 libc)
  • 用 Go 编写,一种比其他服务器具有更高内存安全保证的语言

Caddy安装

Debian、Ubuntu、Raspbian

安装此软件包会自动启动并运行 Caddy 作为名为的systemd 服务,如果您需要,caddy还附带一个默认caddy-api启用的服务。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https 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

测试版本(包括 beta 和候选版本):

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

Fedora、红帽、CentOS

这个包附带了 Caddy 的两个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

Webi

Linux 和 macOS:

curl -sS https://webinstall.dev/caddy | bash

windows:

curl.exe -A MS https://webinstall.dev/caddy | powershell

您可能需要调整 Windows 防火墙规则以允许非本地主机传入连接。

快速入门

首先启动Caddy:

caddy start

Caddy 当前处于空闲状态(配置为空白)。给它一个简单的配置curl

curl localhost:2019/load \ -H "Content-Type: application/json" \ -d @- << EOF { "apps": { "http": { "servers": { "hello": { "listen": [":2015"], "routes": [ { "handle": [{ "handler": "static_response", "body": "Hello, world!" }] } ] } } } } }

使用Heredoc提供 POST 正文可能很乏味,因此,如果您更喜欢使用文件,请将 JSON 保存到名为的文件中caddy.json,然后改用以下命令:

curl localhost:2019/load \ -H "Content-Type: application/json" \ -d @caddy.json

现在在浏览器中加载localhost:2015curl或使用:

curl localhost:2015 Hello, world!

我们还可以使用这个 JSON 在不同的接口上定义多个站点:

{ "apps": { "http": { "servers": { "hello": { "listen": [":2015"], "routes": [ { "handle": [{ "handler": "static_response", "body": "Hello, world!" }] } ] }, "bye": { "listen": [":2016"], "routes": [ { "handle": [{ "handler": "static_response", "body": "Goodbye, world!" }] } ] } } } } }

更新您的 JSON,然后再次执行 API 请求。

在浏览器中尝试新的“再见”端点,或使用curl以确保它有效:

curl localhost:2016 Goodbye, world!

完成 Caddy 后,请务必停止它:

caddy stop

反向代理快速入门

先决条件:

  • 基本的终端/命令行技能
  • caddy在你的路径中
  • 要代理到的正在运行的后端进程

在您的终端中,运行以下命令:

caddy reverse-proxy --to 127.0.0.1:9000

如果您无权绑定到低端口,则可以从较高端口代理:

caddy reverse-proxy --from :2016 --to 127.0.0.1:9000

然后向localhost(或您在 中指定的任何地址–from)发出请求以查看它是否正常工作!

在当前工作目录中,创建一个名为Caddyfile以下内​容的文件:

localhost reverse_proxy 127.0.0.1:9000 

然后,从同一目录运行:

caddy run

然后,您可以向https://localhost发出请求以查看它是否正常工作!

HTTPS 和端口

Caddy 的默认端口不再是:2015. Caddy 2 的默认端口是:443,或者,如果不知道主机名/IP,则为 port :80。您始终可以在配置中自定义端口。

如果主机名或 IP 已知, Caddy 2 的默认协议始终是 HTTPS 。这与 Caddy 1 不同,在 Caddy 1 中,默认情况下只有公开域名使用 HTTPS。现在,每个站点都使用 HTTPS(除非您通过明确指定端口:80或禁用它http://)。

IP 地址和 localhost 域将从本地受信任的嵌入式 CA颁发证书。所有其他域将使用 ZeroSSL 或 Let’s Encrypt。(这都是可配置的。)

证书和 ACME 资源的存储结构发生了变化。Caddy 2 可能会为您的站点获得新证书;但是如果您有很多证书,如果它不适合您,您可以手动迁移它们。

—END—

开源协议:Apache-2.0 license

开源地址:
https://github.com/caddyserver/caddy

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/188567.html

(0)
上一篇 2025-09-21 09:20
下一篇 2025-09-21 09:26

相关推荐

发表回复

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

关注微信