# Caddy 的使用

# 简单的介绍

Caddy
是一个轻量级的 HTTP/2 服务器,具有自动 HTTPS 功能,并且可以轻松配置。它支持多种协议,包括 HTTP/2、HTTP/1.1、WebSocket、gRPC 等,并且可以处理静态文件、反向代理、负载均衡、SSL/TLS 等任务。
基于配置简单的原因,在一些场景下可以平替 Nginx,更轻松的部署服务器。

# caddy 的功能

  1. 自动 HTTPS:Caddy 可以自动为网站提供 SSL/TLS 证书,无需手动配置。
  2. 简单配置:Caddy 的配置文件非常简单,易于理解和修改。
  3. 多协议支持:Caddy 支持多种协议,包括 HTTP/2、HTTP/1.1、WebSocket、gRPC 等。
  4. 反向代理:Caddy 可以轻松配置反向代理,将请求转发到其他服务器。
  5. 负载均衡:Caddy 可以配置负载均衡,将请求分发到多个服务器。
  6. 静态文件处理:Caddy 可以处理静态文件,包括 HTML、CSS、JavaScript、图片等。
  7. 日志记录:Caddy 可以记录访问日志,包括请求 URL、响应状态码、请求时间等。
  8. 插件支持:Caddy 支持多种插件,可以扩展其功能。

# caddy 跟 nginx 的对比

  • Caddy 的配置文件更简单,更易于理解和修改。
  • Caddy 支持自动 HTTPS,无需手动配置。
  • Caddy 的静态文件处理更简单,无需手动配置。
  • Caddy 的日志记录更详细,包括请求 URL、响应状态码、请求时间等。

性能对比:虽然 Caddy 在配置简单性和安全性方面具有优势,但在处理高并发请求时,Nginx 可能更为适合。
这是因为 Nginx 经过长时间的发展和优化,已经在生产环境中证明了其在处理大量并发连接时的稳定性和效率。
此外,Nginx 的社区支持和广泛的插件生态系统也是其受欢迎的原因之一,因此在处理一些小的并发量上,Caddy 更容易上手

# caddy 的使用(只介绍 linux 下的使用)

# linux 安装

Caddy 的安装非常简单,可以通过以下命令进行安装:

  1. 安装 Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
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

默认情况下,caddy 的配置文件会在 /etc/caddy/Caddyfile, 没有后缀

  1. 启动 Caddy
sudo systemctl start caddy --config<指定配置文件路径> 默认会去/etc/caddy/Caddyfile
#或者
sudo caddy run --config 默认会去/etc/caddy/Caddyfile
#查看启动状态
sudo systemctl status caddy
#停止 caddy
sudo systemctl stop caddy || caddy stop
#重启 caddy
sudo systemctl restart caddy || caddy restart
#如果修改了配置文件,可以通过一下命令刷新配置
sudo caddy reload
  1. 配置 Caddy (官方文档)

    1. 文件服务
    :10100 
        {
           root * /opt/
           file_server
        }
    1. 文件预览服务
    :10100 
        {
            root * /opt/
            file_server browse
        }
    1. 反向代理
    :10100
        {
            root * /opt/
            reverse_proxy /community/* eco.dameng.com
            file_server browse
        }
    1. 重定向
    :10100
    {
        root * /opt/
        reverse_proxy /community/* eco.dameng.com
        redir /info/*  https://eco.dameng.com{uri}
        file_server browse
    }
    1. 重写
    :10100
    {
        root * /opt/
        reverse_proxy /community/* eco.dameng.com
        redir /info/*  https://eco.dameng.com{uri}
        
        rewrite /test1.html /test.html
        
        file_server browse
    }
    1. 单页面应用
    example.com 
    {
        encode gzip
        handle /api/* {
            reverse_proxy backend:8000
        }
        handle {
            root * /path/to/site
            try_files {path} /index.html
            file_server
    }
    1. 日志配置
{
     debug
     log {
        output file /var/log/access.log
     }
    }
    
    :10100
    {
    
      root * /opt/
      reverse_proxy /community/* eco.dameng.com
      redir /info/*  https://eco.dameng.com{uri}
    
      rewrite /test1.html /test.html
    
      file_server browse
    }
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

fuuuzzy 微信支付

微信支付

fuuuzzy 支付宝

支付宝

fuuuzzy 贝宝

贝宝