利用 Caddy 一键反代网站(支持SSL证书)

之前本站介绍过使用Nginx来反代需要访问的网站,也分享过相关的一键脚本。今天要介绍的是使用Caddy来反代网站,这个小HTTP Server是用Go语言编写的,占用资源小,在功能上还不能和Nginx相比,但是胜在上手简单。需要的同学可以试试,我测试了一下非常简单,你只需要准备好自己的域名和一台vps,一键脚本来自逗比大佬的博客。

使用步骤

一键部署Caddy

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

编辑配置文件

其它的方式就不看了,这里我们只看使用你自己的子域名来反代https的网站。如果没有提前准备好域名的ssl证书,那么把下面一段中的mail@qq.com换成自己的邮箱就好了,脚本会自动申请好Lets encrypt的ssl证书。申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!

echo "https://abc.com {
 gzip
 tls mail@qq.com
 proxy / https://www.google.com.hk
}" > /usr/local/caddy/Caddyfile

如果一切正常,那么Caddy会自动帮你申请 SSL证书并配置好,而且会定时续约SSL证书 和 强制 http重定向至https !如果你的网站不想公开分享需要加密码的话就在邮箱那一行下面加上basicauth / user passwd,user和passwd分别改成你的用户名和密码。

修改完 Caddy的配置文件后,重启 Caddy即可。

/etc/init.d/caddy restart

使用说明

启动:/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/pipesocks/install/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh uninstall

启动错误

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

kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}') && apt-get remove --purge apache2 -y

如果出现tool systemctl is not installed, abort错误提示,则apt-get install systemd就好了。

weinxin
我的微信公众号
我的微信公众号扫一扫
广告也精彩
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • avatar atang 0

      有意思的站点

      • avatar sanwzzz 0

        报错了~日志文件:请问是解析的原因么?
        Activating privacy features… 2018/05/18 16:12:25 [sanwzzz.club] failed to get certificate: acme: Error 400 – urn:ietf:params:acme:error:connection – Fetching http://sanwzzz.club/.well-known/acme-challenge/rPVfyOj8iMWnp1UApN7CijKu7bITYReGU4qBG3g0Lyk: Error getting validation data