年轻人的第一款web服务器Caddy,简单易用,支持自动申请证书,自动更新证书,妈妈再也不用担心我不会配置https了!
安装
Debian系安装(Debian/Ubuntu/Raspbian等)
1
2
3
4
5
|
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
|
CentOS系安装(CentOS/Fedora/RedHat等)
Fedora 或 RHEL/CentOS 8
1
2
3
|
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy
|
RHEL/CentOS 7
1
2
3
|
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
|
Arch系安装(Arch/Manjaro/Parabola等)
Docker安装
Gentoo安装
1
|
emerge www-servers/caddy
|
Homebrew(MacOS)安装
Chocolatey(Windows)安装
Scoop(Windows)安装
Webi安装
Linux 和 macOS
1
|
curl -fsSL https://webi.sh/caddy | sh
|
Windows
1
|
curl.exe https://webi.ms/caddy | powershell
|
Ansible安装
1
|
ansible-galaxy install nvjacobo.caddy
|
Termux安装
Nix/Nixpkgs/NixOS安装
自行编译安装
安装Go
自行访问Go官网根据指引进行安装
编译安装
1
2
3
|
git clone https://github.com/caddyserver/caddy.git
cd caddy/cmd/caddy
go build
|
运行
基本配置
在你喜欢的位置新建一个Caddyfile文件,或使用默认的Caddyfile文件(linux系默认为/etc/caddy/Caddyfile)
假设你的域名为example.com,你在127.0.0.1:8080上运行了一个web服务,且你已经把域名解析到了你的服务器上,你想要通过example.com访问你的web服务,那么你的Caddyfile应该是这样的:
1
2
3
|
example.com {
reverse_proxy http://127.0.0.1:8080
}
|
接下来使用caddy reload命令重载配置文件
现在你就可以通过example.com访问你的web服务了,并且caddy已经为你申请了证书,默认启用了https,此时已经满足了大部分人的需求了,如果这不是你想要的,可以继续往下看。
额外配置
为你的网站启用gzip
1
2
3
4
|
example.com {
encode gzip
reverse_proxy http://127.0.0.1:8080
}
|
如果你还想更进一步,请查阅Caddy官方文档
访问你的静态网页
1
2
3
4
|
example.com {
root * /var/www/html
file_server
}
|
从端口转发
1
2
3
|
:80 {
reverse_proxy localhost:8080
}
|
不启用https
1
2
3
|
example.com:80 {
reverse_proxy http://127.0.0.1:8080
}
|
添加日志
1
2
3
4
5
6
|
example.com {
reverse_proxy http://127.0.0.1:8080
log {
output file /var/log/caddy/access.log
}
}
|
部署php网站
1
2
3
4
5
|
example.com {
root * /var/www/html
php_fastcgi unix//run/php/php-version-fpm.sock
file_server
}
|
代理到指定路径
1
2
3
|
example.com {
reverse_proxy /api/* http://127.0.0.1:8080
}
|
重定向
1
2
3
4
5
6
7
|
example.com {
redir https://www.example.com{uri}
}
www.example.com {
reverse_proxy http://127.0.0.1:8080
}
|
如果这些都不是你想要的,那么请查阅Caddy官方文档