欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

Caddy

Caddy — 一个自动HTTPS的轻量级Web服务器,零配置即可上线。

提到Web服务器,很多人第一反应是Nginx或Apache。这两个老牌工具确实强大,但配置起来也够折腾——写Location、配SSL证书、处理反向代理规则,一套下来没个半小时搞不定。尤其是HTTPS,Let’s Encrypt虽然免费,但手动续期、验证域名所有权这些操作,对新手来说简直是劝退神器。

所以我今天要安利的这个工具——Caddy,就是来终结这些痛苦的。

Caddy最核心的卖点就四个字:自动HTTPS。你只要告诉它“我要托管这个域名”,它就会自动申请Let’s Encrypt证书,自动续期,甚至自动把HTTP重定向到HTTPS。整个过程用户完全无感知。而且它默认就启用了HTTP/2和HTTP/3,性能上完全不虚Nginx。

另外,Caddy的配置文件语法极其简洁,用的是Caddyfile,而不是Nginx那种块状嵌套结构。举个例子,你想反向代理一个Node.js应用:

example.com {
    reverse_proxy localhost:3000
}

就三行,搞定。没有upstream块,没有proxy_pass,没有ssl_certificate。Caddy会自动为example.com申请证书,然后把请求转发到本地的3000端口。

如果你觉得这还不够直观,Caddy还有一个API模式,可以通过JSON直接配置,适合Kubernetes或者Docker环境。当然,对于大多数人来说,Caddyfile已经够香了。

下载方式

Caddy的下载非常友好,官方提供了预编译的二进制文件,支持Windows、macOS、Linux,甚至还有ARM架构(树莓派用户狂喜)。你可以直接去官网下载:

👉 Caddy官网下载页面

如果你喜欢用包管理器,也可以一键安装:

  • macOS:brew install caddy
  • Linux (Ubuntu/Debian):sudo apt install caddy(但可能版本较旧,建议用官方源)
  • Docker:docker pull caddy:latest

我个人推荐直接下载二进制文件,因为Caddy本身就是一个单文件,丢到/usr/local/bin里就能跑,完全零依赖。

安装方法

安装过程简单到离谱。以Linux为例:

  1. 下载对应系统的二进制文件(比如caddy_linux_amd64.tar.gz)
  2. 解压:tar -xzf caddy_linux_amd64.tar.gz
  3. 移动到PATH:sudo mv caddy /usr/local/bin/
  4. 验证安装:caddy version

搞定。没有编译,没有依赖,没有环境变量配置。Windows用户更简单,解压后双击caddy.exe就能运行。

基础使用教程

1. 快速启动一个静态文件服务器

假设你有一个网站目录/var/www/mysite,想临时托管它:

caddy file-server --root /var/www/mysite --listen :8080

然后访问http://localhost:8080,就能看到你的网站。当然,这不是生产环境,但用来本地测试或者局域网分享文件非常方便。

2. 用Caddyfile配置反向代理

创建一个名为Caddyfile的文件(注意没有扩展名),内容如下:

myapi.example.com {
    reverse_proxy /api/* localhost:3000
    reverse_proxy /static/* localhost:4000
}

然后运行:

caddy run

Caddy会自动监听80和443端口,为myapi.example.com申请证书,并把不同路径的请求转发到不同后端。注意:如果你的域名还没有DNS解析,Caddy会报错无法验证域名所有权,所以请先确保域名指向了你的服务器IP。

3. 搭配Docker使用

这是生产环境最常用的方式。创建一个docker-compose.yml:

version: '3'
services:
  caddy:
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./data:/data
      - ./config:/config

然后docker-compose up -d即可。Caddy会把证书和配置数据持久化到./data目录,重启后不会丢失。

进阶技巧

1. 使用环境变量动态配置

Caddyfile支持环境变量,比如:

{$DOMAIN} {
    reverse_proxy {$BACKEND_HOST}:{$BACKEND_PORT}
}

启动时通过-e或--env传递变量,非常适合多环境部署。

2. 自定义错误页面

你想让404页面更友好?加一行:

example.com {
    errors {
        404 /404.html
        500 /500.html
    }
    file_server
}

Caddy会自动匹配错误码并返回对应页面。

3. 启用日志和访问控制

生产环境一定要记录访问日志:

example.com {
    log {
        output file /var/log/caddy/access.log
        format json
    }
    @blocked {
        path /admin/* 192.168.1.0/24
    }
    respond @blocked "Forbidden" 403
}

这里用@blocked定义了一个匹配规则,如果来自内网IP访问/admin路径,直接返回403。

4. 使用插件扩展功能

Caddy支持插件机制,比如你想用Basic Auth保护某个路径:

example.com {
    basicauth /admin/* {
        user $2a$14$...(加密后的密码哈希)
    }
    file_server
}

密码可以用caddy hash-password命令生成,不需要明文存储。

5. 结合Cloudflare DNS挑战

如果你的服务器在NAT后面,或者不想暴露80端口,可以用DNS挑战来申请证书。在Caddyfile里加上:

{
    acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}

这样Caddy会通过Cloudflare的API验证域名所有权,完全不需要开放端口。

总结

Caddy不是要取代Nginx,而是给那些不想在配置上浪费时间的人一个更优雅的选择。它把HTTPS、反向代理、负载均衡这些常用功能做成了“开箱即用”的体验。尤其是个人项目、小型团队、或者需要快速上线的场景,Caddy绝对能让你少掉一半头发。

如果你还在手动配Nginx的SSL证书,不妨试试Caddy,可能用一次就回不去了。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消