Caddy简单介绍

Caddy 是一个由 go 编写的 webserver,作用上和 Nginx 等同,但是配置简单很多,以及有很多人性化的功能,这里主要安利,如何通过 caddy 方便开发。
web server vs application server
https://www.nginx.com/resources/glossary/application-server-vs-web-server/
安装:
MacOs: brew install caddy
Linux:使用发行版的源进行安装
其他:直接在官网下载二进制文件就可以用,赞美 Golang
基本用法:
需要编写一个 Caddyfile,Caddyfile 本身就是这个 web server 的配置文件。下面贴出一个示例

Caddyfile 示例
http://toppa.zhihu.dev {               # 处理来自 http://toppa.zhihu.dev
    proxy /api http://xg.zhihu.dev # 劫持 API 请求给 http://xg.zhihu.dev
    proxy / :5718                             # 劫持其他请求给本地的 :5178 端口
}

然后,运行 caddy 就可以了(需要 sudo 权限),下面介绍一些开发时的用法。
前端使用线上/测试环境 API
场景一

http://toppa.zhihu.dev {               # 处理来自 http://toppa.zhihu.dev
    proxy /api http://xg.zhihu.dev # 劫持 API 请求给 http://xg.zhihu.dev
    proxy / :5718                             # 劫持其他请求给本地的 :5178 端口
}

这个时候,访问 http://localhost:5718,API 还是走的 mock api。但是访问 http://toppa.zhihu.dev 就是使用的线上 API 了。
因为某些请求是需要在一个域下才能起作用,所以只能在线上调试,使用这种方式,就可以模拟线上环境了。
而且在调试的时候,有时候需要调开发机,有时候需要调线上,完全可以重复多写几个域名(比如 toppa-lw…),减少联调时的工作。

后端开发,使用线上页面,调试 API
场景一

http://toppa.zhihu.dev {               # 处理来自 http://toppa.zhihu.dev
    proxy /api :900                          # 劫持 API 请求到本机
    proxy / http://xg.zhihu.dev      # 劫持其他请求(前端文件)到线上
}

开发时使用透明代理
TBC……
设置 Cookie
由于域名不一样了,cookie 也不一样了(废话),而且目前只有在沿用主站登录的环境里面,登录跳转才是正常的。
对于其他无法正常跳转的页面,可以通过手动设置 cookie 来解决。
推荐使用 http://www.editthiscookie.com/ 这个 chrome 插件,先导出对应的 cookie,然后修改 domain name,最后再导入就行了。
以后应该会考虑写一个一键复制 cookie 的插件来简化这个问题(大概
高级用法:
单独用的时候还有很多高级用法,比如
hosts 不加 http 前缀的时候,会自动尝试用 let’s encrypt 加 https 证书(可以变绿了)
可以加 git plugin,搞一个简单的自动部署(push to git then trigger build)
支持 markdown 写 博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值