Caddy之静态站点应用场景

一、背景与介绍

        无意之中看到公司部门的软件介质下载站点不是使用Nginx部署,而是使用Caddy。就比较好奇了,这个Caddy是个什么东西? 为啥他们没用Nginx呢,带着好奇心搜索了一下相关资料。

        官方解释:  Caddy is a powerful, extensible platform to serve your sites, services, and apps, written in Go. If you're new to Caddy, the way you serve the Web is about to change.

        Caddy是一个功能强大、可扩展的平台,可为您的网站、服务和应用程序提供服务,使用Go编写。如果你是Caddy的新手,那么你为网络服务的方式即将改变。

        官网地址: Welcome — Caddy Documentation

        Github项目地址: https://github.com/caddyserver/caddy

        Star数还挺高的,也是Go的一个明星项目。说白了看下来,总结下Caddy是个什么东东。

        Caddy是对标Nginx的开源Web服务器,同时可以做反向代理、负载均衡等功能。 Nginx有的功能它也有。 

        已经存在Nginx为啥还要使用Caddy呢?

        自我总结了Caddy的优势和应用场景如下:

        1、使用Go语言编写,二进制轻量、跨平台、占用资源小, 当然这个nginx也具备

        2、内置了很多开箱即用的功能,很多情景要编写Nginx的配置文件才能实现的功能,Caddy
就已经内置了。例如file-server部署一个简单的文件服务站点, 一条命令就能搞定, Nginx在这个场景里面就显得比较复杂(针对非运维或者不是很熟悉Nginx的人员而言)

        3、入门门槛低, 针对配置https站点友好,一两条命令就能将你的站点变为https站点,同时支持ssl证书续签,这个功能很多的一些小站长方便使用.

        下面带大家走一下file-server的demo就知道,想部署一个文件服务站点特别简单,3个步骤就完成了。

二、静态站点部署-入门操作

1、基本安装[centos、ubuntu等]

yum install yum-plugin-copr -y
yum copr enable @caddy/caddy -y
yum install caddy -y

2、以某个目录为基准,公开这个目录内容服务[类似文件服务器]

caddy file-server --root ./site/ --browse --listen :80

  以./site/为root目录,  --browse[目录、文件具有索引功能], 监听服务的端口在80

  此时先记录下服务器目录结构:

3、访问站点服务,查看效果

三、总结

        相对Nginx的地位来说,Caddy还任重道远。 开源业界各种说要取代Nginx的新闻资讯层出不穷,但是Nginx真的很能打,几乎没人会尝试一个新的Web服务器去取代已经高性能、稳定的Nginx。 除了个别大厂能够说使用自己自研的能力去替换Nginx, 相信绝大多数公司的体量能把Nginx玩明白都十分不起了!

        每个产品都有自己的特点、特定合适的应用场景, Caddy的入门门槛确实低很多,也有很多内置开箱即用的功能,这是它的优势。 但如果生产环境要使用高性能的Web服务,还是继续推荐使用Nginx,不要轻易尝试Caddy,除非你能Hold得住它,给你的应用场景带来正向的反馈,否则就不要自寻烦恼。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507464.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux如何连接github仓库

一.创建一个github账号 如何创建一个github账号 二.在github上创建一个仓库 登录上github后出现这个界面 然后点击左上角头像,在按照图片位置点击: 继续按照图片上的位置进行点击: 创建成功: 三.云主机连接Github仓库 1.在linux中…

【T5模型源码】深入T5模型:源码解析与实现细节

【T5模型源码】深入T5模型:源码解析与实现细节 文章脉络 模型结构图 类关系分析 简单类的源码 T5LayerNorm T5DenseActDense T5DenseGatedActDense T5LayerFF 复杂类的源码 常见参数介绍 最难的T5Attention源码 常见面试提问 总结 我们在日常业务中可能…

QuillEditor无法识别显示含有div和转义字符的问题

在解决前端根据爬取抓过来的数据时&#xff0c;要显示到富文本框中&#xff0c;如下&#xff1a; <div class\"info_cont\" id\"zoomcon\">\n <p><br></p><p style\";text-align: justify;font-family: Calibri;font-size…

解决Quartus与modelsim联合仿真问题:# Error loading design解决,是tb文件中没加:`timescale 1ns/1ns

解决Quartus与modelsim联合仿真问题&#xff1a;# Error loading design解决&#xff0c;是tb文件中没加&#xff1a;timescale 1&#xff0c;一直走下来&#xff0c;在modelsim中出现了下面问题2&#xff0c;rtl文件、tb文件2.1&#xff0c;rtl代码2.2&#xff0c;tb测试2.3&a…

设计模式23--观察者模式

定义 案例一 案例二 优缺点

《Python之路:系统自学指南》

引言 在当今信息时代&#xff0c;编程已经成为一项越来越重要的技能。而Python作为一门功能强大、易学易用的编程语言&#xff0c;受到了越来越多人的青睐。然而&#xff0c;学习Python并不是一蹴而就的事情&#xff0c;尤其是对于没有编程基础的初学者来说&#xff0c;往往需…

智慧城市一屏统览,数字孪生综合治理

现代城市作为一个复杂系统&#xff0c;牵一发而动全身&#xff0c;城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维&#xff0c;从构成城市诸多要素、结构、功能等方面入手&#xff0c;系统推进…

什么是JPA,JPA的概念

什么是JPA JPA&#xff08;Java Persistence API&#xff0c;Java持久化API&#xff09;&#xff0c;定义了对象-关系映射&#xff08;ORM&#xff09;以及实体对象持久化的标准接口,它是一套标准,具体的实现要根据不同的厂商来提供,就跟JDBC类型 持久化单元 持久化单元是运行…

进程概念篇

1. 冯诺依曼体系结构 目前市面上&#xff0c;几乎所有计算机的硬件构成都遵循冯诺依曼体系结构 与最原始的【输入设备->CPU->输出设备】这样简单的结构相比&#xff0c;冯诺依曼体系结构有何好处&#xff1f; 每次我们在键盘输入数据&#xff0c;经过CPU处理&#xff0c…

train拦截器

拦截器拦截到的请求&#xff0c;设置本地变量member&#xff0c;主要为了获取memberId&#xff0c;在passenger表中存放memberId。 拦截器&#xff1a; 乘客表外键memberId关联member表

开抖店卖什么产品最好?这些类目建议新手收藏好,带你快速起店!

大家好&#xff0c;我是电商小布。 各位小伙伴们加入到抖店这个市场当中&#xff0c;当然就是为了利用我们的小店实现产品转化工作。 而在我们开店的时候&#xff0c;就要考虑好一个东西&#xff0c;就是我们开店到底要卖什么&#xff1f;什么样的产品好卖&#xff1f; 跟这…

OSPF协议详解

静态缺点 1、中大型复杂网络----配置量大 2、不能实时收敛 动态-----可以实时收敛 IGP----内部网关路由协议 RIP OSPF EIGRP ISIS EGP----外部网关路由协议 BGP IGP &#xff08;选路佳 占用资源 收敛快&#xff09;----一个协议好需满足这三个 距离矢量 DV RIP…

Java 线程的状态

线程状态 操作系统的线程 从上图可以详细分析出线程的五种状态以及状态之间的切换。 1&#xff09;新建状态&#xff08;New&#xff09;&#xff1a;当线程对象对创建后&#xff0c;即进入了新建状态&#xff0c;如&#xff1a;Thread t new MyThread(); 2&#xff09;就绪…

【Vue3进阶】- 第2学堂小商城实战课程前言

该教程为进阶教程&#xff0c;如果你还不了解Vue3的基础知识&#xff0c;可以先前往Vue3基础教程&#xff0c;从入门到实战。 学习时遇到的任何疑问都欢迎在相应课文页面下方的问答区进行提问哦 我能学到什么&#xff1f; 编程写法千千万&#xff0c;实现需求是第一。 教程中…

智慧工地可视化解决方案(2)

系统功能 总体应用设计 系统业务分为中心管理、视频联网、人员管理、环境管理、起重机械管理、车辆管理。 每个业务对应一个或者多个硬件系统。中心管理为监控中心。视频联网包含视频联网监控和移动执法子系统。人员管理分为实名制考勤子系统和人员安全子系统(安全帽)。起…

5.11 Vue配置Element UI框架

Vue配置Element UI框架 目录一、 概要二、 开发前准备1. 搭建Vue框架 三、 安装 Element UI1. 引入 Element UI 依赖2. 在 main.js 中引入 Element UI 和相关样式&#xff1a;3. 按需引入(非必须, 可忽略)4. 简单构建一个主页面 目录 一、 概要 Element UI 是一个基于 Vue.js …

安卓Termux系统安装MariaDB结合内网穿透实现公网连接本地数据库

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

SSM框架学习——Spring事务管理

Spring事务管理 概念 事务&#xff08;Transaction&#xff09;是访问并可能操作各种数据项的一个数据库操作序列&#xff0c;这些操作要么全部执行&#xff0c;要么都不执行&#xff0c;是一个不可分割的工作单元。 事务有如下特性&#xff1a; 原子性隔离性一致性持久性 …

116. 飞行员兄弟(递推+暴力)太难了不要求

输入样例&#xff1a; --- ---- ---- ---输出样例&#xff1a; 6 1 1 1 3 1 4 4 1 4 3 4 4 代码&#xff1a; #include<algorithm> #include<iostream> #include<cstring> #include<queue> #include<cmath> #define x first #define y second…

往word表格插入图片,表格大小如何不变形?

在word中进行大量图片排版时&#xff0c;往往会用到表格。然而在往word表格插入图片的过程中&#xff0c;表格往往会随图片大小自适应变化&#xff0c;如何保证图片自适应表格大小&#xff08;即图片按照所给定的表格大小自动缩放&#xff09;&#xff0c;解决方法如下&#xf…