惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

Rat's Blog - ssl

使用Caddy申请免费的Let’s Encrypt泛域名SSL证书 - Rat's Blog Let’s Encrypt免费泛域名SSL证书申请教程 - Rat's Blog 一个可以免费申请Let's Encrypt和TrustAsia SSL证书的网站 - Rat's Blog acme.sh:Let's Encrypt SSL证书自动签发脚本 - Rat's Blog MySSL:一个很详细的SSL测试工具网站 - Rat's Blog しらSSL:免费Alphassl泛域名证书申请 - Rat's Blog 分享一个SSL证书链补全工具,解决部分浏览器显示证书不可信的问题 - Rat's Blog 免费Alphassl泛域名SSL证书申请方法 - Rat's Blog Apache环境强制http 301跳转https的方法 - Rat's Blog
利用Caddy快速简单的部署反向代理/镜像,自动签发SSL证书 - R...
博主: Rat's · 2017-11-24 · via Rat's Blog - ssl

说明:之前关于反向代理教程发了好几个了,参考:利用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.mlhttp://233.toyoo.mlhttps://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

关于Caddy更多介绍参考:一个极简的HTTP Server: Caddy一键安装脚本


版权声明:本文为原创文章,版权归 Rat's Blog 所有,转载请注明出处!

本文链接:https://www.moerats.com/archives/422/

如教程需要更新,或者相关链接出现404,可以在文章下面评论留言。