486 字
2 分钟

Caddy简明安装&配置教程

年轻人的第一款web服务器Caddy,简单易用,支持自动申请证书,自动更新证书,妈妈再也不用担心我不会配置https了!

安装#

Debian系安装(Debian/Ubuntu/Raspbian等)#

Terminal window
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#

Terminal window
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy

RHEL/CentOS 7#

Terminal window
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

Arch系安装(Arch/Manjaro/Parabola等)#

Terminal window
pacman -Syu caddy

Docker安装#

Terminal window
docker pull caddy

Homebrew(MacOS)安装#

Terminal window
brew install caddy

自行编译安装#

安装Go#

自行访问Go官网根据指引进行安装

编译安装#

Terminal window
git clone https://github.com/caddyserver/caddy.git
cd caddy/cmd/caddy
go build

运行#

Terminal window
caddy run

基本配置#

在你喜欢的位置新建一个Caddyfile文件,或使用默认的Caddyfile文件(linux系默认为/etc/caddy/Caddyfile)

Terminal window
vim Caddyfile

假设你的域名为example.com,你在127.0.0.1<8080上运行了一个web服务>,且你已经把域名解析到了你的服务器上,你想要通过example.com访问你的web服务,那么你的Caddyfile应该是这样的:

example.com {
reverse_proxy http://127.0.0.1:8080
}

接下来使用caddy reload命令重载配置文件

Terminal window
caddy reload

现在你就可以通过example.com访问你的web服务了,并且caddy已经为你申请了证书,默认启用了https,此时已经满足了大部分人的需求了,如果这不是你想要的,可以继续往下看。

额外配置#

为你的网站启用gzip#

example.com {
encode gzip
reverse_proxy http://127.0.0.1:8080
}

如果你还想更进一步,请查阅Caddy官方文档

访问你的静态网页#

example.com {
root * /var/www/html
file_server
}

从端口转发#

:80 {
reverse_proxy localhost:8080
}

不启用https#

example.com:80 {
reverse_proxy http://127.0.0.1:8080
}

添加日志#

example.com {
reverse_proxy http://127.0.0.1:8080
log {
output file /var/log/caddy/access.log
}
}

部署php网站#

example.com {
root * /var/www/html
php_fastcgi unix//run/php/php-version-fpm.sock
file_server
}

代理到指定路径#

example.com {
reverse_proxy /api/* http://127.0.0.1:8080
}

重定向#

example.com {
redir https://www.example.com{uri}
}
www.example.com {
reverse_proxy http://127.0.0.1:8080
}

如果这些都不是你想要的,那么请查阅Caddy官方文档

Caddy简明安装&配置教程
https://nyanners.moe/caddy-ez-guide
作者
Zero
发布于
2023-01-01
许可协议
CC BY-NC-SA 4.0