生产力 | 使用Caddy进行域名反代并自动申请ssl
编辑前记
天下苦nginx久矣~!
最近迁移博客,想着之前在服务器上转了各种乱七八糟的东西,心一横,将需要的服务备份后,直接重装系统,从头来过。
之前在vultr上的vps装naive,体验了一下cadddy2反代,简直是懒人福利,这次迁移博客和其他服务的时候,果断跑路投入caddy的怀抱。
记录一下caddy的安装和使用
安装caddy
先简单介绍一下caddy,它是由Golang写的一个高效的webserver,相比nginx,配置起来更加简便,同时支持自动化的ss证书申请、配置和续约(这一点太棒了)。
个人环境
Debian10
添加源
$ echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
使用apt安装caddy
$sudo apt update
$sudo apt install caddy
安装完成后caddy会自动注册一个system服务。
使用 systemctl start caddy
可以开启服务;
使用 systemctl statues caddy
可查看服务状态。
root@VM-0-7-debian:~# systemctl status caddy
● caddy.service - Caddy
Loaded: loaded (/lib/systemd/system/caddy.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-03-03 12:45:12 CST; 20s ago
Docs: https://caddyserver.com/docs/
Main PID: 24905 (caddy)
Tasks: 7 (limit: 2047)
Memory: 33.4M
CGroup: /system.slice/caddy.service
└─24905 /usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
配置文件
安装完成后,系统会在 /etc
生成一个caddy文件夹,文件夹里就有需要配置的Caddyfile文件。
使用编辑器打开文件
$sudo vim /etc/caddy/Caddyfile
在配置文件中编辑如下内容即可
#exaple.com 是你的域名 8080是服务的端口
example.com {
reverse_proxy 127.0.0.1:8080
}
使用 systemctl reload caddy
重新加载服务即可。
哒哒,一个超简单的反代就搞定了。
启动SSL
在Caddy中启用SSL,可以使用Caddy的自动证书管理器(ACME)功能。ACME是由Let’s Encrypt维护的一个开放式证书颁发机构,可为网站免费提供SSL/TLS证书。
在Caddy中启用自动证书管理器功能,需要将Caddyfile文件稍微修改一下:
{
email [email protected]
acme_ca https://acmev02.api.letsencrypt.org/directory
}
example1.com {
reverse_proxy 127.0.0.1:8000
encode gzip
tls {
on_demand
}
}
example2.com {
reverse_proxy 127.0.0.1:8080
encode gzip
tls {
on_demand
}
}
这段配置里,email
指定你的电子邮件地址,在证书到期或需要更新时会发送通知。
acme_ca
指令指定使用的ACME证书颁发机构的网址。这个示例使用Let’s Encrypt的ACME服务器。
tls
指令启用SSL,并将证书自动管理为on_demand
模式。在这个模式下,Caddy将根据需要自动申请证书,这样就不必手动为每个域名请求证书。启动Caddy时,它将使用ACME服务器自动请求SSL/TLS证书并将其绑定到指定的域名。证书将在每90天自动更新一次。
需要注意的是,在使用Caddy的ACME功能之前,需要确保域名已经解析到了您的服务器上,并且端口80和443没有被其他程序使用。
- 0
- 0
-
分享