今天给各位分享轻量级 Web 服务器: 免费 HTTPS 开箱即用的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
众所周知,Web服务器是Web开发中不可或缺的基础服务,在开发中经常会用到。常见的开源Web服务器包括众所周知的Apache和功能强大的Nginx。今天我们要介绍的开源项目是用Go编写的Web服务器的“后起之秀”:Caddy。它具有无需安装即可下载使用、零配置实现HTTPS的特点,从而在强大的Web服务器中占有一席之地。
在这个HTTPS必备的时代,Caddy依靠自动HTTPS,无需额外配置,可以在几分钟内完成HTTPS站点的搭建,使其成为中小型Web服务的首选服务器。 Caddy深受开源爱好者的喜爱,自2014年开源以来累计获得36000颗星。
项目地址:https://github.com/caddyserver/caddy
一、为什么使用 Caddy ?
Caddy 是一个功能强大、可扩展的平台,可为您的站点、服务和应用程序提供支持。
使用Caddy 在Linux、Mac 和Windows 上快速部署http(s) 站点或反向代理服务。支持:
HTTP/1.1 和HTTP/2 同时接受HTTPS 自动签名和手动管理虚拟主机(多个站点在单个端口上工作) 原生IPv4 和IPv6 支持静态文件分发平滑重启/重新加载反向代理(HTTP 或WebSocket) 负载均衡以及健康检查Markdown渲染文件浏览服务等。与传统的Nginx或Apache相比,Caddy整体只有一个可执行文件。它易于安装并且不易出现奇怪的依赖问题。配置文件结构清晰,语法简单易用,依赖模块化。该架构可以使用Go语言快速开发扩展模块。
让我们开始玩吧。
二、安装
系统环境:Ubuntu 20.04 LTS
可以使用以下命令将Caddy 安装为系统服务:
sudo apt instally debiankeyring debianarchivekeyring apttransporthttps
curl1sLf'https://dl.cloudsmith.io/public/caddy/stable/gpg.key'|sudo tee/etc/apt/trusted.gpg.d/caddystable.asc
curl1sLf'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt'|sudo tee/etc/apt/sources.list.d/caddystable.list
须藤aptupdate
sudo apt安装球童
注意:此方法会在安装完成后启动该服务,并在电脑开机时自动启动。
您还可以下载可执行文件来使用。
下载地址:https://caddyserver.com/download 在网页顶部选择您的操作系统后,点击右侧蓝色的下载按钮即可下载文件。下载的文件不能直接运行,需要添加权限。 $ mv caddy_linux_amd64 caddy # 下载后重命名文件,方便后续命令的输入。文件名根据系统不同而不同。
$ sudo chmod a+x caddy #给Caddy添加可执行权限
在命令行执行caddy version命令,出现版本信息:
v2.4.6h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw
那就说明安装成功了!
三、从零完成 HTTPS 站点
下面演示如何通过Caddy完成一个HTTPS站点。只需4 个步骤:
提示示例中使用的域名为:caddy.hellogithub.com。只需将其更改为您的域名即可。
第一步:安装,使用上面介绍的命令进行安装
步骤2:在您购买域名的网站上设置域名解析地址。如下图:
设置需要几分钟才能生效。可以通过以下命令检查是否生效:
curl'https://cloudflare-dns.com/dns-query?name=caddy.hellogithub.comtype=A'H'accept: application/dns-json'
域名设置生效,返回如下:
{'状态':0,'TC':false,'RD':true,'RA':true,'AD':false,'CD':false,'问题':[{'name':'caddy.hellogithub.com',' type':1}],'Answer':[{'name':'caddy.hellogithub.com','type':1,'TTL':592,'data':'107.150.122.176'}]}
步骤3:创建配置文件Caddyfile,无需额外设置即可启用HTTPS:
caddy.hellogithub.com
回复'Hello HTTPS! '
域名访问返回的内容第四步:启动,同目录执行命令:sudo caddy run
默认情况下,Caddy 使用执行命令目录下的Caddyfile 文件中的配置。
最后访问caddy.hellogithub.com查看效果!
四、上手教程
这里我们先从常见的Caddy命令开始,然后进行配置讲解,最后用一个实际案例来展示如何使用Caddy配置网站并上线。
4.1 常用命令
4.2 配置文件
Caddy的本机配置文件使用JSON格式。但为了方便用户编写,它提供了Caddyfile作为接口,以便用户可以快速配置站点信息。运行时,Caddy会自动将Caddyfile配置信息转换为JSON配置文件。
Caddyfile提供的功能不如JSON配置文件强大,但对于不需要复杂配置的用户来说已经足够了。
Caddyfile的配置指令格式如下:
directive[]{#matcher代表匹配器,如果提供,该指令将只响应matcher描述的资源subdirective[]#subdirective}
Caddyfile的文件结构如图:
4.3 演示
下面将演示如何使用Caddy搭建站点,加深对配置格式和命令用法的理解。
目录结构:
Caddyfile
index.html
公共
HG.html
两个页面文件index.html和HG.html的内容如下:
文档类型html
html 语言'en'
头
元字符集'UTF-8'
标题你好世界!标题
头
身体
你好世界!
身体
html
文档类型html
html 语言'en'
头
元字符集'UTF-8'
标题HelloGitHub标题
头
身体
你好GitHub
身体
html
Caddyfile配置内容如下:
# 如果本机没有wordpress,注释掉这部分站点配置。
:80{# 部署WordPress 站点
# 根/var/www/wordpress
#php_fastcgi unix//run/php/phpversionfpm.sock#配置fastcig服务
# file_server # 配置文件服务
}
http://localhost:3000{
basicauth/公共/* {
# 匹配访问localhost:3000/public/*的请求,并为其添加登录保护
HG JDJhJDE0JGEySk9janFMdHlBY2Y0aVdQZklQak9HcmwzNDZhNFg0N3V5Ny9EZkZMZHB1Nkt4ZE5BNGJt
# 用户名HG 密码HelloGitHub,密码使用caddy hash-passowrd命令生成
}
root * ./# 设置当前站点根目录为当前文件夹,*表示匹配所有请求
模板
文件服务器{
# 配置当前站点为静态文件服务器,可用于搭建博客系统
hide .git # 隐藏所有.git 文件
}
}
:4000 {
verse_proxy /public/*http://localhost:3000 # 配置反向代理
}
在当前目录下输入:
$ caddy run # 启动Caddy
最后效果如下:
访问:http://localhost:3000 可以看到页面显示“Hello, world!”
访问:http://localhost:3000/public/HG.html。系统将提示您输入用户名和密码。验证无误后才能看到该页面。
访问:http://localhost:4000 会自动跳转到3000端口的页面
4.4 提供接口管理方式
除了简单易懂的配置文件方式之外,Caddy还提供了管理配置的界面。通过这些接口可以轻松实现Web服务器管理自动化和集成发布等高级功能。
提供的接口和功能:
POST /load 设置或替换当前配置POST /stop 停止当前配置并退出进程GET /config/[path] 导出指定路径的配置POST /config/[path] 设置或替换对象;追加到数组PUT /config/[path ] 创建新对象或插入数组PATCH /config/[path] 替换现有对象或数组元素DELETE /config/[path] 删除指定路径的值轻松遍历JSON 中使用@id 的配置结构GET /reverse_proxy/upstreams 返回配置由于篇幅限制,这里不会演示代理上游的当前状态。如果你想了解更多,可以阅读Caddy的官方文档。
五、总结
读完本文,您应该对Caddy有了一些了解。你是否觉得自己认识Caddy太晚了?
虽然性能不如Nginx,但就上手难易程度而言,Caddy 却遥遥领先于Nginx!主要是因为默认开启的HTTPS功能太好用了。您可以免费、快速、轻松地开启网站HTTPS,无需担心任何事情。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6929.html
用户评论
终于有一个不用自己折腾就能用免费HTTPS的Web服务器了!
有19位网友表示赞同!
开源?这听起来很香啊,得好好看看这个服务器怎么样。
有8位网友表示赞同!
自带HTTPS?那安全性应该还不错吧,值得一试。
有15位网友表示赞同!
不知道性能怎么样?希望运行速度流畅。
有7位网友表示赞同!
现在越来越多的工具都开始开源了,未来互联网估计会更蓬勃发展。
有10位网友表示赞同!
51CTO.COM一直都是IT资讯的宝藏网站,推荐!
有13位网友表示赞同!
之前用的是付费的服务器,这个免费的就足够用了吧。
有7位网友表示赞同!
正好有个新项目想上线,看看这个开源服务器能不能派上用场。
有9位网友表示赞同!
期待这个服务器能快速发展,成为更多人的首选。
有15位网友表示赞同!
学习新的技术和工具总是很有趣的,要来试试这段时间的互联网流行梗?
有15位网友表示赞同!
对于新手来说,直接开箱即用的HTTPS功能的确很方便。
有14位网友表示赞同!
开源项目有社区支持更好,问题更容易解决吧。
有5位网友表示赞同!
免费的东西总让人心动,但是要注意安全性和稳定性。
有19位网友表示赞同!
希望这个服务器能提供丰富的功能和拓展模块。
有5位网友表示赞同!
是不是意味着以后不用付费的方案也能拥有优质的网络服务?
有8位网友表示赞同!
科技发展太快了,开源服务器越来越普及化。
有20位网友表示赞同!
这篇文章让我对开源技术有了更深的了解。
有13位网友表示赞同!
有时间一定要去51CTO.COM网站了解更多关于这个服务器的信息。
有20位网友表示赞同!
希望这款服务器能受到更多开发者和用户的喜爱。
有17位网友表示赞同!