linux使用Caddy配置反向代理

caddy是一个轻量级的反向代理服务器,它支持HTTP、HTTPS、WebSocket、gRPC等协议,并且支持自动HTTPS证书。下面我将介绍如何使用Caddy配置反向代理。

安装Caddy

在linux服务器上安装Caddy非常简单,只需要执行以下命令即可:

mkdir -p /usr/local/caddy
wget -N --no-check-certificate https://file.efvcms.com/moeapp/caddy/caddy -P /usr/local/caddy
wget -N --no-check-certificate https://file.efvcms.com/moeapp/caddy/caddy.service -P /etc/systemd/system
chmod +x /usr/local/caddy/caddy

配置Caddy

首先配置域名,该配置会自动签发ssl证书,并且自动续期。请提前解析域名的A记录到服务器IP。然后使用SSH客户端使用一下命令:

#以下全部内容是一个整体,请修改域名和需要反代的地址127.0.0.1:3000,然后一起复制到SSH运行!
echo "www.efvcms.com {
 gzip
 tls admin@efvtest.com
 proxy / http://127.0.0.1:3000 {
     transparent
     header_upstream Host {host}
 }
}" > /usr/local/caddy/Caddyfile

开启相关防火墙

由于有些服务器会关闭80和443端口,所以需要开启防火墙,他们会影响到我们绑定的域名并申请SSL证书,请使用以下命令开启防火墙:

#CentOS 7+、AlmaLinux、Rocky Linux系统
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

#Debian、Ubuntu系统
ufw allow 80
ufw allow 443

启动并设置开机自启

systemctl start caddy
systemctl enable caddy

测试

打开浏览器,输入域名,如果出现你反代的网站内容,那么恭喜你,配置成功!