windows下使用caddy替换nginx实现自动https反向代理
之前项目一直用的nginx做代理,我有两个项目,都需要https访问,需要配置证书,最近看到有个caddy的web服务器,可以自动配置https,不需要每隔一段时间就申请证书。因此就想试试。下面是我的配置过程。
1、安装caddy
我是在windows上安装的,安装方法也很简单,直接下载下来解压放到对应目录就行。
2、配置环境变量
将存放的目录配置到环境变量中
输入caddy命令查看是否配置成功
出现以上内容说明配置成功了。
三、配置cadyfile
类似nginx的nginx.conf配置文件,caddy有多种格式的配置文件。我这里使用的caddyfile。
在目录下新建一个caddyfile的文件。
将nginx的配置重写到caddyf中
我之前的nginx配置
server {
listen 80;
server_name forstyle.cc;
# rewrite ^(.*)$ https://$host$1;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080/zblog/;
}
location /zblog {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080/zblog;
}
}
修改以后的caddyfile文件配置
forstyle.cc {
@zblog path /zblog*
rewrite / /zblog{path}
reverse_proxy @zblog http://127.0.0.1:8080
header @zblog Host {host}
header @zblog X-Real-IP {remote_host}
}
是不是简洁了很多?
四、启动caddy
启动caddy也很简单。执行以下命令就可以
caddy run --config D:\software\caddy\Caddyfile
出现以上命令表示启动成功了。
然后访问测试下。
可以正常访问,并且是自带https的。不需要配置证书了。
五、常用caddy命令
访问静态文件
localhost
root * /home/me/mysite
file_server
反向代理
:2016
reverse_proxy 127.0.0.1:9000
返回特定内容
localhost:2016 {
respond "Goodbye, world!"
}
在后台启动
caddy start
停止caddy
caddy stop
重新加载配置(重启)
caddy reload
特定路径访问代理
handle_path /prefix/* {
reverse_proxy localhost:9000
}
替换路径代理
handle_path /old-prefix/* {
rewrite * /new-prefix{path}
reverse_proxy localhost:9000
}
还有很多命令,可以查看文档。