侧边栏壁纸
  • 累计撰写 6 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论
标签搜索

部署Caddy进行反向代理并配置https

jackknife007
2022-03-17 / 0 评论 / 0 点赞 / 1,457 阅读 / 1,136 字
温馨提示:
本文最后更新于 2022-03-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 前言

在同一个服务器上部署了个人网站和个人网盘后,不能还通过IP+端口号访问吧,肯定要买个域名。又想要完全去掉端口号,实现不同的url可以访问不同的项目,这时候就需要反向代理出场了。

之前折腾的服务器都是用nginx来做反向代理,这次还是在安装cloudreve的时候知道了caddy的存在。功能和稳定性还是比不上nginx,但好在占用资源少,而且还能一键配置https证书并自动续期,只用作反向代理肯定是足够的。

接下来就记录部署Caddy和配置的过程。

2. 部署Caddy

先放上一个大佬的Caddy中文文档

创建Caddy配置文件

mkdir -p /opt/caddy \
	&& vim /opt/caddy/Caddyfile

并填入以下信息

example.com {
  tls admin@example.com
  proxy / {IP:端口号} {
    transparent
  }
}
  • example.com改成自己购买的域名
  • tls admin@example.com是Caddy用来申请ca证书,admin@example.com改成自己的邮箱即可。但我配置后总是连接超时,所以我在腾讯云申请了免费的ca证书,导入到服务器上,将此处改为tls cert keycert是证书文件地址,key是私钥内容地址。但用自己的证书和密钥时,example.com那里要带上端口号80443,否则会报错。
  • {IP:端口号}这里输入要代理的项目的地址,例如本地项目可以是localhost:8080

启动Caddy服务

docker run -d \
  --name caddy \
  -e "ACME_AGREE=true" \
  -e "CADDYPATH=/etc/caddycerts" \
  -v /opt/caddy/certs:/etc/caddycerts \
  -v /opt/caddy/Caddyfile:/etc/Caddyfile \
  -p 80:80 -p 443:443 \
  --restart unless-stopped \
  abiosoft/caddy

/opt/caddy/certs可用来放自己的ca证书文件。

这样caddy服务器就配置好了,在浏览器输入example.com实际上访问的就是{IP:端口号}

屏蔽http访问

因为浏览器默认是访问80端口。所以也可以修改Caddyfile文件,使得访问http时自动跳转到https。

https://example.com {
  tls cert key
  proxy / {IP:端口号} {
    transparent
  }
}

http://example.com, http://www.example.com {
  redir https://example.com{uri}

大功告成!

0

评论区