配置 Caddy 实现反向代理

什么是反向代理

大家如果使用过科学上网,那么想必对代理有一点认识。我们将客户端的信息交给一个中转的服务器,由中转服务器发送给网站服务器,再获得网站发送给中转服务器的信息,就避开了客户端和网站之间的防火墙。这样的访问方式隐藏了客户端的 IP,称为正向代理

反向代理呢,就是在网站这一侧建立代理。比如说,百度作为一个搜索引擎,为了提升搜索速度,后台肯定有许多台服务器。这些服务器的 IP 显然是不同的,那么我们在访问 www.baidu.com 的时候,实际上应该连接哪台呢?这个时候就需要一个反向代理服务器来完成任务。通过一些计算方法(计算服务器负载、计算延迟等),反向代理服务器将我们的访问请求发送到选中的一台服务器。而在我们的浏览器里,只会看见 www.baidu.com 的网址而不会看见连接的服务器 IP。这种访问方式隐藏了服务器的 IP,称为反向代理

目前常用的反向代理应用有 Nginx, HAProxy, FRP 等,但我选择了比较容易上手的 Caddy 作为服务器的反向代理。

Caddy 的好处在于配置简单,同时自动申请 SSL 证书,不用额外配置 HTTPS 连接。

安装 Caddy

参见安装 — Caddy v2中文文档 (dengxiaolong.com)

使用以下命令:

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

启动、停止、重启、查看状态:

systemctl start caddy
systemctl stop caddy
systemctl restart caddy
systemctl status caddy

配置 Caddyfile

Caddy 的配置文件是 Caddyfile,它的位置是 /etc/caddy/Caddyfile

用编辑器打开 Caddyfile,我们就可以配置代理规则了。

我的 Caddyfile,配置了两个网站的代理:

# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.

pan.jerryhzy.top {
    reverse_proxy localhost:5244
    encode gzip
}
blog.jerryhzy.top {
    reverse_proxy localhost:6773
    encode gzip
}

# Refer to the Caddy docs for more information:
# https://caddyserver.com/docs/caddyfile

这里反向代理的端口要和 docker 容器的端口一致,不记得的可以看下上期写的 docker-compose.yml 中端口映射的内容。

配置好 Caddyfile 后,重启服务就可以访问网址了。

端口开放

在我们的阿里云后台,要关注端口的开放权限,否则有可能出现访问不了网站的情况。

80 端口是 HTTP 协议的默认端口,443 端口是 HTTPS 协议的默认端口。

在网址不输入端口号时,会尝试访问 80 端口;如果访问网址以 https:// 开头,则改为访问 443 端口。

所以这两个端口是应该开放的。

在防火墙上应该开放的 TCP 端口:80, 443, 22。第三个是 SSH 登录用,建议看前面的这篇换成别的端口(我换成了 1437)。

至于 ICMP 协议的 -1 端口,这个可以不用管,只表示可以使用 ICMP 协议传递信息,而 -1 表示所有端口 / 不指定端口。

image-20240729113227995

这个时候,我们的网站已经大功告成,可以愉快地开始使用了!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇