Py学习  »  NGINX

一键HTTPS、零配置部署:替代 Nginx 的开源神器!

芋道源码 • 6 天前 • 40 次点击  

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产Star破10w的开源项目,前端包括管理后台、微信小程序,后端支持单体、微服务架构

RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERPCRMAI大模型、IoT物联网等功能:

  • 多模块:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 微服务:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK17/21+SpringBoot3、JDK8/11+Spring Boot2双版本 

来源:极客之家


在Web服务器领域,Nginx和Apache长期占据统治地位。现在有一款更优的选择!

如果你已经厌倦了管理复杂的 Nginx 配置文件和手动配置 SSL 证书,那Caddy 就是你的不二选择。Caddy自2014年开源以来,已经收获近65k star,受到众多开发者追捧。

简介

Caddy 是一个用 Go 语言编写的、开源的、功能强大的 Web 服务器。它的核心设计理念是简单易用默认安全 (Secure by Default)。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

优势

颠覆性的自动HTTPS

Caddy最革命性的特点是全球首个默认启用HTTPS的Web服务器。传统服务器需要复杂配置的SSL证书,而Caddy只需两行配置:

yourdomain.com
respond "Hello HTTPS!"

启动后,Caddy自动完成:

  • 通过ACME协议(默认使用Let’s Encrypt)申请证书
  • 自动配置HTTPS并监听443端口
  • 将HTTP请求重定向至HTTPS
  • 后台自动续期证书,无需人工干预

这一特性让个人博客、中小型站点彻底告别证书管理烦恼。

极简设计与强大功能

与臃肿的传统服务器不同,Caddy采用单一静态二进制文件,无任何依赖(甚至不依赖libc),安装只需3步:

wget https://github.com/caddyserver/caddy/releases/latest/download/caddy_linux_amd64
chmod +x caddy_linux_amd64
mv caddy_linux_amd64 /usr/bin/caddy

但其能力却毫不缩水:

  • 原生支持HTTP/1.1、HTTP/2及实验性HTTP/3
  • 反向代理与负载均衡(含WebSocket)
  • 静态文件服务(隐藏.git等敏感文件)
  • Markdown实时渲染
  • IPv4/IPv6双栈支持
  • 内置BASIC认证、Gzip压缩等中间件

安全

采用Go语言编写带来内存安全优势,天然免疫HeartbleedDROWN等经典漏洞。其默认加密套件为ECDHE ECDSA + AES256-GCM-SHA384,支持TLS 1.3,并通过TLS_FALLBACK_SCSV防御协议降级攻击

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

实战

场景1:静态网站托管

假设目录结构如下:

.
├── Caddyfile
└── public
    ├── index.html
    └── about.md

Caddyfile配置:

example.com {
    root * ./public  # 设置根目录
    file_server      # 启用文件服务
    encode gzip      # 开启压缩
    templates        # 支持模板渲染
}

运行caddy run,访问https://example.com,Caddy自动处理证书和HTTPS跳转!

场景2:带认证的反向代理

保护内网应用的安全暴露:

api.example.com {
    reverse_proxy localhost:8080  # 转发到本地服务
    basicauth /admin/* {          # 为/admin路径添加认证
        admin JDJhJDE0JGEySk9janFMdHlBY2Y0aVdQZklQak9HcmwzNDZhNFg0N3V5Ny9EZkZMZHB1Nkt4ZE5BNGJt 
    }
}

密码通过caddy hash-password生成,避免明文存储。

为何Caddy是未来之选?

  • 开发体验革命: 告别Nginx的繁琐配置,一条命令启动服务
  • 安全默认值: HTTPS即正义,Caddy将其变为现实
  • 云原生友好: 单一二进制+无依赖,完美适配Docker(docker pull caddy
  • 扩展自由:  Go模块化架构允许自定义中间件开发
  • 性能可靠: 经受数万亿请求验证,可扩展至数十万站点

真实案例: 某开发者原使用Nginx配置全站HTTPS,屡次因证书过期导致服务中断。迁移至Caddy后,运维时间减少90%。

开源地址

https://github.com/caddyserver/caddy



欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/189535