Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版

这篇具有很好参考价值的文章主要介绍了Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

Caddy 是一个通用的、易于使用的 Web 服务器,具有以下特点:

快速: Caddy 使用 Go 语言编写,以高性能著称。
安全: Caddy 支持 HTTPS、自动证书生成、HTTP/2 等安全功能。
易用: Caddy 的配置文件简单易懂,易于配置。
功能丰富: Caddy 支持多种功能,包括反向代理、负载均衡、缓存、日志记录等。
Caddy 可以用于各种场景,包括:

托管静态网站
托管 Web 应用
作为反向代理
作为负载均衡器
Caddy 可以运行在各种操作系统上,包括 Linux、Windows、macOS 等。

Caddy 与 Nginx 对比

特性 Caddy Nginx
语言 Go C
性能 接近 Nginx 较高
内存占用 较低 较低
安全性 支持 HTTPS、自动证书生成、HTTP/2 支持 HTTPS、HTTP/2
易用性 配置文件简单易懂 配置文件语法复杂
功能 支持反向代理、负载均衡、缓存、日志记录等 支持反向代理、负载均衡、缓存、日志记录等
插件 支持 支持
社区活跃度 较高 较高

Caddy 的优势:

快速:Caddy 使用 Go 语言编写,以高性能著称。
安全:Caddy 支持 HTTPS、自动证书生成、HTTP/2 等安全功能。
易用:Caddy 的配置文件简单易懂,易于配置。
社区活跃:Caddy 社区活跃,可以获得及时帮助。
Nginx 的优势:

性能:Nginx 性能较高,在高负载情况下表现稳定。
功能丰富:Nginx 支持多种功能,可以满足复杂的需求。
社区活跃:Nginx 社区活跃,可以获得及时帮助。
Caddy 的劣势:

性能:Caddy 的性能略逊于 Nginx。
功能:Caddy 的功能略少于 Nginx。
Nginx 的劣势:

易用性:Nginx 的配置文件语法复杂,学习曲线较陡。
总结:

Caddy 和 Nginx 都是优秀的 Web 服务器。Caddy 的优势在于快速、安全、易用,适合中小网站和对性能要求不高的场景。Nginx 的优势在于性能高、功能丰富,适合大型网站和对性能要求高的场景。

选择 Caddy 还是 Nginx 取决于你的具体需求:

如果你的网站对性能要求不高,并且希望快速、安全、易于部署,那么 Caddy 是一个不错的选择。
如果你的网站对性能要求高,并且需要丰富的功能,那么 Nginx 是一个不错的选择。

使用 - docker版本

由于是使用docker进行操作的,所以需要提前安装好docker。

下面我会从简单到困难的顺序进行操作。

hello world

hello world这个例子是从caddy的docker hub官网拿的。我的docker版本是25,我当前所在目录为/home/web/test

拉取镜像

docker pull caddy

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议
第一步:创建index.html
创建index.html并写入内容hello world

echo "hello world" > index.html

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

第二步:启动容器

docker run -d --name=caddy -p 80:80 \
    -v $PWD/index.html:/usr/share/caddy/index.html \
    -v caddy_data:/data \
    caddy

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议
第三步:测试

本地测试:curl http://localhost/,出现hello world表示成功。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议浏览器测试:浏览器窗口输入服务器IP
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议测试成功。

配置IP访问的静态页面

配置IP访问的静态页面和上面hello world差不多。区别就是Caddyfile文件是使用自定义的,hello world是使用默认的Caddyfile。index.html文件就是静态页面。

由于上面已经启动了caddy容器,如果需要继续下去的话可以删除容器。

docker rm -f caddy

第一步:创建Caddyfile

vim Caddyfile

输入上面的命令之后,会进入vim编辑页面,按i键进入编辑模式,粘贴以下内容

http:// {
    root * /usr/share/caddy
    encode gzip
    file_server
}

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议按Esc键后输入:wq回车保存退出。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议
第二步:编写静态页面内容

为了和hello world区分开来,改一下静态页面的内容。
改成如下所示:
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

第三步:运行容器

docker run -d --name=caddy -p 80:80 -p 443:443 -p 443:443/udp -v $PWD/Caddyfile:/etc/caddy/Caddyfile -v $PWD/index.html:/usr/share/caddy/index.html --restart=always caddy:latest

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议第四步:测试

浏览器输入服务器IP。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

配置带域名的静态页面

上面的还是通过IP的方式去访问静态页的。如何通过域名的方式去访问静态页呢?
只需在Caddyfile配置就行。

注意:小伙伴需要做测试学习,最好找一个国外的服务器,现在国内的服务器做域名解析需要备案才能使用。

下面是阿里云的通知:
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

第一步:修改Caddyfile
Caddyfile里面填写自己的域名,位置我有注释。

# Caddyfile 配置文件

# 全局配置

http:// {
  # 根目录,指向所有静态文件的根目录
  # 这里设置为 `/usr/share/caddy`
  root * /usr/share/caddy

  # 启用 gzip 压缩
  encode gzip

  # 启用文件服务器功能
  file_server
}

# 虚拟主机配置
# 下面的域名填写自己解析的域名 - 注意
caddy.xxxxx.fun {
  root * /usr/share/caddy
  # 启用 gzip 压缩
  encode gzip
  # 启用文件服务器功能
  file_server
}

为了区分我再次修改静态页面的内容
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

修改好之后直接重启caddy即可。
第二步:重启caddy

docker restart caddy

第三步:测试
在浏览器输入域名,回车。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议并且可以看到caddy为我们自动申请了证书。

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

配置带域名的反向代理

为了测试,我在服务器上启动了一个服务,http://localhost:19850/端口为19850,现在我需要使用caddy去反向代理到19850这个服务。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

第一步:修改Caddyfile

配置中需要填写自己的服务器IP

# Caddyfile 配置文件

# 虚拟主机配置
# 下面的域名修改为自己的 - 注意
caddy.xxxxxxx.fun {
  # 反向代理配置
  # 将所有请求转发到 服务器IP:19850 地址 - 注意
  reverse_proxy 服务器IP:19850
  # 启用 gzip 压缩
  encode gzip
}

第二步:重启caddy

docker restart caddy

第三步:测试

可以看到通过caddy的反代,成功访问19850端口的服务。
Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议

配置带域名的重定向

第一步:修改Caddyfile

重定向到百度。

# Caddyfile 配置文件

# 虚拟主机配置

caddy.xxxx.fun {
  # 重定向所有请求到 https://baidu.com
  # 将请求的 URI 路径附加到 https://baidu.com 之后,并将其作为新的目标 URL 进行重定向
  redir https://baidu.com{uri}
}

重定向所有请求: 将所有请求重定向到 https://baidu.com。
{uri} 表示请求的 URI 路径。例如,如果请求的 URL 是 https://caddy.xxxx.fun/hello/world,那么 {uri} 的值为 /hello/world。
重定向后的 URL 将是 https://baidu.com{uri}。例如,如果请求的 URL 是 https://caddy.xxxx.fun/hello/world,那么重定向后的 URL 将是 https://baidu.com/hello/world。

第二步:重启caddy
第三步:测试

Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版,https,docker,网络协议文章来源地址https://www.toymoban.com/news/detail-830889.html

到了这里,关于Caddy 自动HTTPS 反向代理、重定向、静态页面 - docker版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx搭建Https反向代理,使用阿里云免费SSL证书 - Docker

    没有docker需提前安装docker,不知怎么安装的请自行百度。 1、拉取镜像 2、去阿里云或者其他云服务提供商申请免费证书,申请到之后下载下来,上传到服务器 把证书上传到ssl目录下面,下面是ssl的目录结构 /root/nginx/ssl 和上传的证书有两个文件一个 .key 一个 .pem 进入nginx-pr

    2024年02月09日
    浏览(95)
  • Caddy 中实现自动 HTTPS

    要在 Caddy 中实现自动 HTTPS,您可以按照以下步骤进行操作: 步骤 1:安装 Caddy 首先,您需要安装 Caddy 服务器。您可以从 Caddy 的官方网站(https://caddyserver.com/)下载适用于您的操作系统的最新版本。 步骤 2:创建 Caddyfile 在安装完成后,您需要创建一个名为 Caddyfile 的配置文

    2024年02月15日
    浏览(33)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(63)
  • Nginx静态内容和反向代理

    Nginx(读作“engine x”)是一个高性能的开源HTTP和反向代理服务器。 高性能:可以处理大量的并发连接,并且具有响应速度快、资源消耗低的优点。 反向代理:可以作为反向代理服务器,负载均衡、动态内容缓存。 静态内容服务:可以快速地提供静态网页、图像、视频等静

    2024年02月21日
    浏览(29)
  • 【Nginx】静态资源部署、反向代理、负载均衡

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ nginx配置文件整体分为三部分: 全局块 :Nginx运行相关的全局配置 events块 :网络连接相关的配置 http块 :代

    2024年02月13日
    浏览(47)
  • Nginx之正向代理与反向代理进阶(支持https)

    在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器, 但美中不足的是仅支持http协议,不支持https协议 。 我们先看看看http和https的区别: http协议 :协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一些敏

    2024年02月13日
    浏览(37)
  • Nginx 配置 HTTPS 过程(+反向代理)

    nginx配置HTTPS前置条件 我这里参考了一个网友的文章,有兴趣可以直达:手把手教你Nginx 配置 HTTPS 完整过程_somnus_小凯的博客-CSDN博客_nginx配置https 。 不建议只一端配置https,另一端不配置,因为浏览器会拦截并给你一个白眼: mixed-content 。大意是要你:  前端https页面中不能

    2023年04月08日
    浏览(47)
  • 解决重定向页面时,https变成http问题

    问题场景:请求某个接口后,处理完相关逻辑后需要重定向到另一个页面,请求的地址是https开头,但经过重定向后,地址变成了http,导致后续请求接口不通,全部报404 解决方法: 启动类中添加如下代码

    2024年02月11日
    浏览(65)
  • nginx 离线安装 https反向代理

    1.1 安装gcc和gcc-c++ 1.1.1下载依赖包 gcc依赖下载镜像地址: 官网:https://gcc.gnu.org/releases.html 阿里云镜像站:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ CentOS 镜像站点:https://vault.centos.org/7.5.1804/os/x86_64/Packages/ ​只需下载如下依赖即可: 1.1.2 上传依赖包 下载完成后,将依赖包上

    2024年02月02日
    浏览(67)
  • kkviewfile 实现nginx反向代理+https

    3.1 如果访问出错,并且报错信息是下图 两种解决方案 第一用我打包好的jar,下载替换就行 代码是 2021年7月6日,v4.0.0 版本 下载地址:链接: https://pan.baidu.com/s/1yqJDa75tokAWQhn_tfCOmA?pwd=ribv 提取码: ribv 第二你自己在gitee拉取代码进行处理 如果拉取中报错 error: RPC failed; curl 18 tr

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包