说明:之前关于反向代理教程发了好几个了,参考:利用Nginx反向代理来简单镜像HTTP(S)网站的方法,不过对比使用Caddy
来反代的方法,还是麻烦了些,但是Nginx
性能却好些,各有优点吧,一般不想折腾的就建议使用Caddy
来反代,毕竟Caddy
配置简单也支持自签Let’s Encrypt SSL
证书,很方便。
【2020.10.20】 替换脚本caddy安装包,算是修复了,有疑问随时留言即可。
安装Caddy
运行以下命令:
wget -N --no-check-certificate https://raw.githubusercontent.com/iiiiiii1/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh #备用地址 wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
配置文件
以下所有示例域名为toyoo.ml
,请注意替换为自己的域名 !
1、服务器IP反向代理
下面是一个,用你服务器的IP
来反向代理一个http
协议的网站http://www.baidu.com
。
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行! echo ":80 { gzip proxy / http://www.baidu.com }" > /usr/local/caddy/Caddyfile
服务器IP
也可以反向代理HTTPS
协议的网站,但是需要自签SSL
证书,现在的浏览器一般都不会认自签的SSL
证书,所以不建议这么做。
2、域名反向代理HTTP
下面是一个,用你的域名来反向代理一个http
协议的网站http://www.baidu.com
。
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行! echo "http://toyoo.ml { gzip proxy / http://www.baidu.com }" > /usr/local/caddy/Caddyfile
如果你需要反向代理HTTPS
协议的网站,比如https://www.baidu.com
,那么继续看下面步骤。
3、域名反向代理HTTPS
如果你有SSL
证书和密匙的话,把SSL
证书(xxx.crt
)和密匙(xxx.key
)文件放到/root
文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行! echo "https://toyoo.ml { gzip tls /root/xxx.crt /root/xxx.key proxy / https://www.baidu.com }" > /usr/local/caddy/Caddyfile
如果你没有SSL
证书和密匙,那么你可以这样做:
下面的xxxx@xxx.xx
改成你的邮箱,同时需要注意的是,申请SSL
证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则Caddy
会申请并配置失败!
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行! echo "https://toyoo.ml { gzip tls xxxx@xxx.xx proxy / https://www.baidu.com }" > /usr/local/caddy/Caddyfile
如果一切正常,那么Caddy
会自动帮你申请SSL
证书并配置好,而且会定时续约SSL
证书和强制http
重定向至https
!
4、HTTP重定向为HTTPS
当你是手动指定SSL
证书和密匙 来配置的话,Caddy
只会监听443
端口(https
),并不会自动设置80
端口(http
)的重定向(如果是Caddy
自动申请的SSL
证书,那么就自动做好了),如果要做重定向的话,可以这样做:
下面的示例代码中,是把http://toyoo.ml
、http://233.toyoo.ml
、https://666.toyoo.ml
三个域名都重定向到了 https://toyoo.ml
。
# 以下全部内容是一个整体,是一个命令,全部复制粘贴到SSH软件中并一起执行! echo "http://toyoo.ml ,http://233.toyoo.ml ,https://666.toyoo.ml { redir https://toyoo.ml{url} } https://toyoo.ml { gzip tls /root/xxx.crt /root/xxx.key proxy / https://www.baidu.com }" > /usr/local/caddy/Caddyfile
修改完Caddy
的配置文件后,重启Caddy
即可。
/etc/init.d/caddy restart
原文链接:https://www.moerats.com/archives/422/