Caddy
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
注意: 如需支持 HTTP/3,请确保在防火墙上转发/开放 UDP 端口 443,因为 HTTP/3 使用 UDP 协议。
"Caddy,有时特指 Caddy Web 服务器,是用 Go 编写的开源 HTTP/2 网络服务器。它使用 Go 标准库实现 HTTP 功能。" - Wikipedia
您可以通过配置文件或无需配置文件的方式为 Jellyfin 设置反向代理,两种方法在您使用公共域名时均可自动启用 HTTPS。
如需启用 HTTPS,请确保您域名的 A/AAAA 记录已指向您的公网 IP 地址。
如果您还不熟悉 Caddy,请查阅其 入门指南。
某些指南中的 Caddyfile 配置包含带有 DNS 服务商 API 密钥的 tls 段落,示例如下:
example.com {
reverse_proxy 127.0.0.1:8096
tls {
dns <DNS Provider> <API Token>
}
}
使用此选项时请务必谨慎:
- 如果您使用动态 IP,此配置不会自动更新 DNS 记录
- 在大多数情况下,这并非自动启用 HTTPS 的必要条件
- 配置错误可能导致域名和/或账户被入侵
- API 密钥应仅授予应用程序运行所需的最小权限
请阅读 Let's Encrypt 文档 获取更多信息。
单行命令
为 Jellyfin 设置反向代理的最简单方法是使用 reverse-proxy 命令:
caddy reverse-proxy --from :5001 --to 127.0.0.1:8096
这是一个简单但可用于生产环境的明文 HTTP 反向代理配置。
如果您满足:
-
有权限绑定低端口(1-1023),且
-
已将公共域名的 DNS 记录指向您的机器,
则可同样简单地启用 HTTPS:
caddy reverse-proxy --from example.com --to 127.0.0.1:8096
您将看到 Caddy 为您的站点自动配置 TLS 证书。成功后,即可通过您的域名使用 HTTPS 访问 Jellyfin 服务器。
Caddyfile 配置文件
如需使用配置文件,请创建名为 Caddyfile 的配置文件。上述第一条 reverse-proxy 命令等效于以下配置选项。
:5001
reverse_proxy 127.0.0.1:8096
要启用 HTTPS,只需将首行改为您的域名。
example.com
reverse_proxy 127.0.0.1:8096
子路径配置
您可以让 Jellyfin 仅通过特定基础路径提供服务,而不代理所有其他请求。
为此,首先需配置 Jellyfin 使用基础路径。若您已可访问 Web 界面,请进入 Admin > Networking 并在 Base URL 字段输入类似 /jellyfin 的路径。若无法访问,可前往 <Configuration Directory>/network.xml 文件并根据需要修改 <BaseUrl> 的值。关于目录位置,请参阅 配置文档。修改后可能需要重启 Jellyfin 服务器才能生效。
随后只需 为 reverse_proxy 指令添加路径匹配器。该路径应与您在 Jellyfin 设置中输入的 Base URL 一致。以下示例适用于可通过 example.com/jellyfin 访问的服务器:
example.com
redir /jellyfin /jellyfin/
reverse_proxy /jellyfin/* 127.0.0.1:8096
此配置下,Caddy 仅代理以 /jellyfin/ 开头的请求。请注意结尾的斜杠——这是可选的,但建议保留。