反向代理 Caddy 安装教程与快速配置指南,自动 HTTPS 与反向代理

Caddy 是一款开源、现代化的 Web 服务器,因其简单易用和自动化功能而受到广泛欢迎。它支持 HTTP/2、HTTP/3 和自动 HTTPS 配置,能够为网站提供高性能、安全可靠的访问服务。Caddy 的配置文件简洁直观,使用者可以通过少量配置快速搭建网站、反向代理或负载均衡环境。

特点:

  1. 自动 HTTPS:内置 Let’s Encrypt,自动申请与更新证书,无需手动操作。
  2. 易于配置:配置文件简单,可快速实现反向代理、路由、重定向等功能。
  3. 跨平台支持:可运行于 Linux、Windows、macOS 和容器环境。
  4. 现代协议支持:支持 HTTP/2、HTTP/3 及 WebSocket,提升访问性能。
  5. 可扩展性强:拥有丰富插件生态,可满足缓存、压缩、访问控制等多种需求。

安装 sudo

# 更新软件源
apt update

# 安装 sudo
apt install -y sudo

使用官方安装脚本

# 下载并安装 Caddy
curl -fsSL https://getcaddy.com | bash

# 检查 Caddy 版本
caddy version

或者实用官方二进制包手动安装

# 下载最新 Caddy Linux 64 位二进制
wget https://github.com/caddyserver/caddy/releases/latest/download/caddy_$(uname -s)_amd64.tar.gz

# 解压并移动到可执行路径
tar -xzf caddy_$(uname -s)_amd64.tar.gz
sudo mv caddy /usr/local/bin/

# 添加执行权限
sudo chmod +x /usr/local/bin/caddy

# 检查版本
caddy version

启动与管理 Caddy 服务

# 启动 Caddy
sudo systemctl start caddy

# 开机自启
sudo systemctl enable caddy

# 查看状态
sudo systemctl status caddy

# 重启服务
sudo systemctl restart caddy

添加代理编辑或手动编辑/etc/caddy/Caddyfile

sudo nano /etc/caddy/Caddyfile

如果添加网站例如www.123.com
代理本地端口例如3280
配置为代码为

www.123.com {
    reverse_proxy 127.0.0.1:3280 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}

添加完配置必须重启caddy

# 重启服务
sudo systemctl restart caddy



如果你希望根域名也转到www或其他子域名
可以这样配置123.com替换你自己的域名

http://123.com {
        redir https://www.123.com{uri} permanent
}
123.com {
        tls [email protected]
        redir https://www.123.com{uri} permanent
        reverse_proxy 127.0.0.1:3280 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}

http://www.123.com {
        redir https://{host}{uri} permanent
}
www.123.com {
        tls [email protected]
        reverse_proxy 127.0.0.1:3280 {
        header_up X-Real-IP {http.request.header.CF-Connecting-IP}
        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}
    }
}

caddy证书位置

/var/lib/caddy/.local/share/caddy/certificates/