Skip to content

Caddy

caddy logo

Caddy เป็น tools ตัวนึงที่ดีมากๆ หลักๆผมจะเอามาทำ reverse proxy แต่ตัว Caddy เองยังทำได้อีกหลายอย่างเลยนะ

หากเราใช้ Caddy ทำ reverse proxy เราจะได้ TLS มาโดยอัตโนมัติเลย และคอย renew certificate ให้ด้วย

Config caddy via Caddyfile

เราจะต้อง config reverse proxy ผ่าน Caddyfile นะ

sh
myweb.com {
	reverse_proxy kong:8000
}

# allow http
http://portainer.dev {
	reverse_proxy portainer:9000
}

จะเห็นว่าง่ายมากๆ

compose file

yaml
version: "3.8"
services:
  caddy:
    image: caddy:2.7.6-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy/site:/srv
      - ./caddy/caddy_data:/data
      - ./caddy/caddy_config:/config

after update config file

เวลาแก้ config เราจะต้องสั่งให้ Caddy load config ใหม่อีกรอบนะ ก็สั่ง

sh
docker compose exec -w /etc/caddy caddy caddy reload

หรือ compose down แล้ว up ใหม่ก็ได้ แต่ก็จะมี downtime เพิ่มมานะ