如何将Caddy设置为反向代理

Caddy是一款用Go编写的现代开源web服务器。它以其简单性、强大性以及自动获取和续订SSL证书的功能而闻名。与传统的网络服务器不同,Caddy以其易用性而闻名,默认情况下强调自动化和安全性。

但Caddy的能力超越了为静态网站和应用程序提供服务;它就像一个反向代理一样闪闪发光&一个位于内部应用程序前面并将客户端(如web浏览器)请求转发到相应服务器的服务器。

选择Caddy作为您的反向代理解决方案是明智之举。虽然有像Nginx这样广受欢迎的替代品,但与Caddy相比,它需要稍微复杂一点的设置。Traefik是另一个出色的选择,它提供了非凡的功能和灵活性,尤其是对于基于云的解决方案,但其配置复杂性要高得多。

这突出了为什么Caddy是那些寻求将易用性与速度、安全性和可靠性相结合的反向代理解决方案的首选,所有这些都在众多生产环境中得到了验证。

这篇全面的文章将深入研究如何将Caddy作为反向代理,指导您完成设置过程和配置。我们很高兴向您展示与Caddy一起跑步是多么简单。所以,让我们深入了解。

安装Caddy

首先,让我们澄清一下:如果您喜欢基于容器的设置,您可以直接通过Linux发行版的包管理器安装Caddy,也可以将其设置为Docker容器。在本指南中,我们将探讨这两种选项,首先介绍如何将其作为软件包安装。

根据您使用的分发版本,请使用相应的命令:

Debian、Ubuntu、Linux Mint

sudo apt安装caddy
代码语言:
 猛击
 (
猛击
)

RHEL、Fedora、AlmaLinux、Rocky Linux

sudo dnf安装
'dnf命令(copr)'
sudo dnf copr
使可能
@球童
sudo dnf安装caddy
sudo系统ctl
使可能
球童
sudo systemctl启动caddy
代码语言:
 猛击
 (
猛击
)

Arch Linux,Manjaro

sudo pacman-S球童
sudo系统ctl
使可能
球童
sudo systemctl启动caddy
代码语言:
 猛击
 (
猛击
)

将Caddy设置为反向代理

让我们先澄清一下我们的设置。Caddy通常用作反向代理,将流量路由到其后面运行的容器化应用程序,因此我们将遵循此模式。我们选择了两个容器化的示例应用程序进行演示:FreshRSS阅读器和Memos笔记应用程序,它们分别在1080和5230端口上运行。

当然,您可能正在使用许多应用程序——10个、20个、100个或更多。Caddy完全有能力在没有任何问题的情况下管理如此重的负载。我们只选择了两个应用程序,以使事情尽可能简单明了。

要了解Dockerized应用程序运行在哪些端口上,您可以通过执行以下命令快速轻松地执行此操作:

docker容器ls格式
“表{{.ID}}t{{.Names}}t{{.Ports}”
代码语言:
 猛击
 (
猛击
)
查找正在运行的Docker容器的暴露端口。

现在让我们讨论Caddy将管理的域记录。对于本指南,我们使用“
tmplinux.com
,“我们拥有并用于测试的域。我们将引导两个特定的DNS记录,”
rss.tmplinux.com
“用于FreshRSS应用程序和”
memos.tmplinux.com
“对于Memos笔记应用程序,连接到Caddy运行的服务器。

但是,如果你没有自己的域,你可以在你的“
/etc/主机
文件但如果你不知道如何做到这一点,我们在这里的详细指南会解释一切。

以下是我们的生产流程,让您更好地直观了解。

既然一切都清楚了,让我们直接进入正题:设置Caddy来处理反向代理任务。

编辑Caddyfile

我们所需要做的就是在Caddy的主配置文件中输入非常简单的指令,名为“
Caddyfile
,“在”
/etc/球童/
目录

它告诉Caddy如何提供web内容,自动管理HTTPS证书,路由请求,以及用最少的配置处理其他web服务器任务。简单地说,这是一组指导Caddy有效地与网络流量交互和管理的指令。

用您喜欢的文本编辑器打开它,删除现有内容,然后用下面显示的内容替换它。立即解释其含义。

sudo nano/etc/caddy/Caddyfile
代码语言:
 猛击
 (
猛击
)
{
自动http(_H)
 }
rss.tmplinux.com:
80
{
反向氧化
localhost:
1080
}
memos.tmplinux.com:
80
{
反向氧化
localhost:
5230
}
代码语言:
 Nginx
 (
nginx
)