Skip to content

Instantly share code, notes, and snippets.

@sitsh
Last active April 25, 2019 03:52
Show Gist options
  • Save sitsh/ae9fdc01ea77245e7aabac339290d248 to your computer and use it in GitHub Desktop.
Save sitsh/ae9fdc01ea77245e7aabac339290d248 to your computer and use it in GitHub Desktop.
# Caddy Server
> 官网 https://caddyserver.com/
## Caddy 是用Go 写的一个webServer
* 集成 Let's Encrypt 自动签发证书
* 内置 支持Http/2
* 内置 支持 TLS 1.3
* 配置简单容易上手
## Caddy 的授权模式
在 github 作者源码上编译版本是 免费的
> https://github.com/mholt/caddy
在下面 官网 通过在线自动编译 出来的 caddy 版本 个人使用免费 商用需要订阅收费
> https://caddyserver.com/download
## 下面示例 使用 Caddy 1.0 windows 版本 反向代理 .net core 2.2 kestrel webapps
先从 [caddy-releases](https://github.com/mholt/caddy/releases) 下载windows 编译版本二进制文件
![](https://www.yycaf.xyz/wp-content/uploads/2019/04/caddy2.png)
解压缩到 本地目录
新建一个 website目录 存放 Caddyfile 配置文件
这里 比如 是这样的目录结构
> E:\website\hangfire.18080\Caddyfile
> E:\caddy_v1.0.0_windows_amd64\caddy.exe
运行 CMD
```bash
E:\caddy_v1.0.0_windows_amd64\caddy.exe -conf E:\website\hangfire.18080\Caddyfile
```
示例 Caddyfile 配置文件 具体更详细的看官方 文档
```bash
yourdomain:18080 //主机地址
tls off //关闭 证书 自动申请 自动申请需要 80 443 端口开放
basicauth /hangfire user pwd //配置 简单登陆验证
proxy / localhost:5100 //反代 本地 kestrel webapps
```
这样 一个 Caddy 网站示例 已经能正常运行了。
## 配置守护进程
因为 Caddy 并没有提供 windows下的服务启动方案 这里 我们通过 [nssm](https://nssm.cc/) 这个工具 实现服务的安装
首先到官网下载 [nssm-2.24-101-g897c7ad.zip](https://nssm.cc/ci/nssm-2.24-101-g897c7ad.zip)
把对应版本的 nssm.exe 复制到随意一个目录(我这里把他放到 Caddy.exe 同一目录下)
运行 CMD
切换到 nssm.exe 目录
```bash
nssm install [<servicename>]
nssm edit <servicename>
```
![](https://www.yycaf.xyz/wp-content/uploads/2019/04/caddy1.png)
运行上面的目录 会弹出 ui 配置界面 把 caddy 的运行参数 配置添入后就能在 windows 服务中 看见你安装的服务了 然后我们配置 延迟启动 这样 如果机器重启 或者服务崩溃 就有守护进程帮你自动重启服务了。
![](https://www.yycaf.xyz/wp-content/uploads/2019/04/caddy3.png)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment