前段时间简单学了学Caddy, 一直没有用武之地, 最近需要联调一个服务, 所以拿它试试水。

首先使用scoop安装这俩软件, 这边使用Gitee上的一个仓库

scoop bucket add extras <https://gitee.com/scoop-bucket/extras>

然后分别安装

scoop install caddy
scoop install mkcert

然后在Caddy.exe同目录下建一个Caddyfile文件(无后缀名), 文件内容:

其中tls后面的证书是需要用mkcert生成的

# 全局选项块, 必须放在头部
{
	# 开启debug模式
	#debug
	# 管理端点禁用
	admin   off
	# 自动HTTPS
	#auto_https off|disable_redirects|ignore_loaded_certs
}

# 片段, 可以使用import在任何地方引用
(backend) {

   # 反向代理
   reverse_proxy <http://localhost:8901> {
      # header_up为在代理之前+-请求头
      header_up Host {host}
      header_up X-Real-IP {remote}
      header_up X-Forwarded-For {remote}
      header_up X-Forwarded-Port {server_port}
      header_up X-Forwarded-Proto {scheme}
	  # header_down为在代理请求返回之后+-响应头
	  header_down Access-Control-Allow-Headers * 
      header_down Access-Control-Allow-Origin *
   }

}

example.org {
  tls D:/data/ssh_cert/_wildcard.xxx.cn+3.pem D:/data/ssh_cert/_wildcard.xxx.cn+3-key.pem

  # handle 表示拦截器
  handle /* {
	import backend
  }

}

找个目录使用mkcert生成证书, 需要什么域名或者ip直接往后写就行:

mkcert "*.example.org" localhost 127.0.0.1 ::1

然后安装Local CA (此操作只需执行一次即可, 以后无需执行)

mkcert --install

然后把Caddyfile中tls后面的证书和key路径和文件名改成生成的证书路径和文件名

然后就可以启动Caddy了

caddy run

OK最后就可以愉快的玩耍了。