Featured image of post Caddy简明安装&配置教程

Caddy简明安装&配置教程

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

年轻人的第一款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等)

1
pacman -Syu caddy

# Docker安装

1
docker pull caddy

# Gentoo安装

1
emerge www-servers/caddy

# Homebrew(MacOS)安装

1
brew install caddy

# Chocolatey(Windows)安装

1
choco install caddy

# Scoop(Windows)安装

1
scoop install caddy

# 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安装

1
pkg install caddy

# Nix/Nixpkgs/NixOS安装

1
nix-shell -p caddy

# 自行编译安装

# 安装Go

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

# 编译安装

1
2
3
git clone https://github.com/caddyserver/caddy.git
cd caddy/cmd/caddy
go build

# 运行

1
caddy run

# 基本配置

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

1
vim 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命令重载配置文件

1
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官方文档


使用 Hugo 构建
主题 StackJimmy 设计