Caddy和我們常用的Nginx、Apache等Web服務器相比,最大的特點就是部署簡單,而且又可以最大限度地節省服務器資源,最顯著的特性是默認啟用 HTTPS,它是日前唯一無需額外配置即可提供 HTTPS 特性的 Web 服務器。
Docker安裝
curl -sSL https://get.docker.com | bash
service docker restart
docker-compose安装
curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
然後我們先來創建個檔案夾並創建docker-compose.yml
mkdir caddy && cd caddy && nano docker-compose.yml
寫入如下內容:
version: "3"
services:
caddy:
image: caddy:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy_data:/data
- ./caddy_config:/config
volumes:
caddy_data:
caddy_config:
創建Caddyfile並配置:
nano Caddyfile
你的域名 {
reverse_proxy 內部ip:要反代的端口
tls 你的郵箱
}
如果你有更多的端口需要反代,也可以:
你的域名1 {
reverse_proxy 內部ip:要反代的端口1
tls 你的郵箱
}
你的域名2 {
reverse_proxy ip:要反代的端口2
tls 你的郵箱
}
比如你的服務器同時有ttrss、FileRun、Bitwarden、blog
ttrss.example.com {
reverse_proxy 127.0.0.1:1234
tls 你的郵箱
}
FileRun.example.com {
root www/Filerun
tls 你的郵箱
}
Bitwarden.example.com {
reverse_proxy 127.0.0.1:2345
tls 你的郵箱
}
Blog.example.com {
root www/wordpress
tls 你的郵箱
respond /uploads/*.php 404
@wp-admin {
path not ^\/wp-admin/*
}
rewrite @wp-admin {path}/index.php?{query}
file_server
}
配置好Caddyfile後,啟動容器
docker-compose up -d