利用 Caddy 非常简单的部署 反向代理/镜像(支持自签SSL证书)

本文最后更新于 2018年11月5日 14:22 可能会因为没有更新而失效。如已失效或需要修正,请留言!

Caddy是一个使用 Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在 上手难度/配置难度 上面简单的不行不行的。

并且 Caddy支持 自动签订Let’s Encrypt SSL证书,什么都不需要你管,只需要提供一个邮箱,剩下的他会自己申请、配置和续约 SSL证书!

注意:如果你要镜像谷歌网站,那么不要用 www.google.com 会被跳转到谷歌的其他子域名,镜像需要用如香港: www.google.com.hk 这样的域名!

部署 Caddy

Caddy 是 Go语言编译好的二进制程序,所以只有一个 Caddy 文件(还需要生成一个配置文件),但是为了管理方便,所以我做了个一键脚本。

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

安装Caddy成功后,我们就继续下面的步骤。

配置文件

Caddy的特点之一就是,配置文件非常的简单,继续下面看就知道了。

服务器IP 反向代理

下面是一个,用你服务器的IP 来反向代理一个 http 协议的网站 http://xxx.xx 

点击展开 查看更多

域名 反向代理 HTTP

下面是一个,用你的域名 来反向代理一个 http 协议的网站 http://xxx.xx 

点击展开 查看更多

域名 反向代理 HTTPS

如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

点击展开 查看更多

HTTP重定向为HTTPS(仅手动指定SSL证书和密匙)

当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向(如果是Caddy自动申请的SSL证书,那么就自动做好了),如果要做重定向的话,可以这样做:

点击展开 查看更多

使用说明

启动:/etc/init.d/caddy start

停止:/etc/init.d/caddy stop

重启:/etc/init.d/caddy restart

查看状态:/etc/init.d/caddy status

查看Caddy启动日志: tail -f /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

Caddy自动申请SSL证书位置:/.caddy/acme/acme-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/

卸载 Caddy:

执行以下代码后,会问你是否确定要卸载 Caddy,输入 y 即可。

注意:卸载 Caddy 会把Caddy的所有虚拟主机文件夹和配置文件删除,并且不可恢复!
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh uninstall

其他说明

单网站/多网站

当然,上面的几个示例,实际上都算是单网站。

点击展开 查看更多

网页加密

什么?担心自己做的镜像不小心爆露被滥用?没事,设置一下用户名和密码即可,只需要在上面的示例中加入这行代码:

点击展开 查看更多

记录日志

如果你想要记录网站访问日志,那么只需要在上面的示例中加入这行代码:

点击展开 查看更多

启动显示成功,但是实际未运行

因为 服务脚本判断的问题,只判断了nohub是否运行 Caddy成功,但没有判断 Caddy 是否保持正常运行。

你可以理解为,nohub成功启动了 Caddy,但是 Caddy因为配置文件错误等原因,启动后又退出了。

所以这种情况下,你应该去查看启动日志:

tail -f /tmp/caddy.log

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

点击展开 查看更多


有什么问题请在下面留言评论。

转载请超链接注明:月下博客 » 利用 Caddy 非常简单的部署 反向代理/镜像(支持自签SSL证书)
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

留言评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code