· 4 min read

Caddy自动申请证书,反代利器 -- Nginx替代

Caddy 是一个现代化的 Web 服务器和反向代理服务器,使用Go语言编写。它可以用于多种用途,对比Nginx的配置与复杂的申请证书流程,Caddy配置更加简洁灵活,并开箱可用。

Caddy 是一个现代化的 Web 服务器和反向代理服务器,使用Go语言编写。它可以用于多种用途,对比Nginx的配置与复杂的申请证书流程,Caddy配置更加简洁灵活,并开箱可用。

Caddy 是一个现代化的 Web 服务器和反向代理服务器,它可以用于多种用途,对比Nginx的配置与复杂的申请证书流程,Caddy配置更加简洁灵活,并开箱可用。

  1. 使用最新的http/2和tls1.3,提供 HTTPS 支持:Caddy 默认自带 Let’s Encrypt 自动证书申请和更新功能,使得搭建 HTTPS 服务器变得非常容易,无需手动配置证书和密钥。

  2. 反向代理:Caddy 可以代理多种后端服务,例如 Web 应用、API、数据库等,实现请求的负载均衡、缓存、重写等功能。

  3. 静态文件服务:Caddy 可以将指定目录下的静态文件以 HTTP 或 HTTPS 协议提供给客户端,支持文件压缩、缓存控制、目录浏览等功能。

  4. 自动化部署:Caddy 提供了许多有用的插件和自动化工具,可以帮助开发者快速构建和部署 Web 应用,例如支持 Docker 镜像、Kubernetes、Git 集成等。

  5. 插件扩展:Caddy 提供了丰富的插件系统,可以支持各种自定义功能,例如网站性能优化、安全加固、日志记录等。

安装

在debian/ubuntu上作为服务安装

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

配置文件默认位置为/etc/caddy/Caddyfile

Caddyfile配置文件

Caddy的配置十分简洁,且证书自动续签。

以下配置皆是Caddy 2的配置格式,与版本1不兼容.

静态文件服务器

your.domain {
	root * /var/www
	file_server
}

反向代理服务器(几个栗子)

yayashare.top, www.yayashare.top {
    tls fake@gmail.com  # 默认使用Let’s Encrypt SSL,自动续签
    reverse_proxy :3001 # 代理本地3001端口
    encode gzip
}
yaya.top {
    tls {
        issuer zerossl zerossl-api-key  # 使用ZeroSSL
    }
    reverse_proxy /api/* https://api.yayashare.top {
        header_up Host {http.reverse_proxy.upstream.host}
    }
}
# 使用本地证书,并反代php
yy.top {
    tls /usr/local/cf/yy.top.crt /usr/local/cf/yy.top.key # 使用本地证书
    root * /data/wwwroot/yy.top/public
    encode gzip
    php_fastcgi unix//dev/shm/php-cgi.sock
    file_server
}
# 反代绕过跨域检查
yaya.top {
    tls fake@gmail.com  # 默认使用Let’s Encrypt SSL,自动续签
    reverse_proxy https://api.yayashare.top {
        header_up Referer {http.reverse_proxy.upstream.host}
    }
}

256K并发下的性能对比

Test256K
Caddy (mean)1.471049ms
Nginx (mean)1.192198ms
DeltaNginx is 23% faster
Caddy (95th percentile)2.087199ms
Nginx (95th percentile)1.83587ms
DeltaNginx is 13% faster
Caddy (99th percentile)2.906458ms
Nginx (99th percentile)2.608383ms
DeltaNginx is 11% faster

对比Nginx性能差距还是有的,但是不大,对于中小型应用来说差别不大。

参考

Back to Blog

Related Posts

View All Posts »
访问电子书库Z-Library

访问电子书库Z-Library

Z-Library有一个庞大的数据库,包含了数千万的书籍和文档,涉及众多的学科和领域,比如计算机科学、数学、生物学、化学、历史、文学、哲学等等。如果你需要查找或下载一个书籍,你可以直接在Z-Library的网站进行搜索下载。本文介绍了几种访问Z-Library的方法

Clash Meta 安卓使用教程 Android

Clash Meta 安卓使用教程 Android

Clash Meta是一朵花里胡哨的花朵,它以其独特的功能和鲜艳的外表吸引着人们的目光。无论你是普通用户还是网络专业人士,它都能为你提供出色的代理体验,让你在网络世界中自由绽放。

加密邮箱对比ProtonMail vs Tutanota

加密邮箱对比ProtonMail vs Tutanota

ProtonMail 和 Tutanota 都是受欢迎的加密电子邮件服务提供商,它们都提供了端到端加密功能,使用户的通信内容得到保护,ProtonMail和Tutanota都是非常安全、实用的加密邮箱服务,本篇介绍两者之间的细微区别

免费使用微软文本转语音(TTS)服务

免费使用微软文本转语音(TTS)服务

系统自带的文字转语音(TTS)不堪入耳,听了几分钟,耳朵严重不适。上传到微信读书可以使用微信读书的AI语音,但是考虑到平台限制等诸多因素,还是倾向于使用微软的TTS -- 最自然流畅的文本转语音,效果更佳。但是微软TTS属于付费服务,这里推荐一款借助edge浏览器接口免费使用的Python程序,开源免费。