windows下使用caddy替换nginx实现自动https反向代理

3天前学习15

之前项目一直用的nginx做代理,我有两个项目,都需要https访问,需要配置证书,最近看到有个caddy的web服务器,可以自动配置https,不需要每隔一段时间就申请证书。因此就想试试。下面是我的配置过程。

1、安装caddy

我是在windows上安装的,安装方法也很简单,直接下载下来解压放到对应目录就行。

git地址

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
}

还有很多命令,可以查看文档。

分享到: