您现在的位置是:系统运维 >>正文
开源 Web 服务器后起之秀,自带免费 HTTPS 开箱即用
系统运维26223人已围观
简介本文转载自微信公众号「HelloGitHub」,作者HelloGitHub。转载本文请联系HelloGitHub公众号。众所周知,Web 服务器是 Web 开发中不可或缺的基础服务,在开发中经常会用到 ...
本文转载自微信公众号「HelloGitHub」,开源S开作者HelloGitHub。后起转载本文请联系HelloGitHub公众号。秀自带
众所周知,免费Web 服务器是箱即 Web 开发中不可或缺的基础服务 ,在开发中经常会用到。开源S开耳熟能详的后起开源 Web 服务器有久负盛名的 Apache 、性能强劲的秀自带 Nginx 。而我们今天要介绍的免费开源项目是采用 Go 编写的 Web 服务端“后起之秀” :Caddy 它拥有下载无需安装就能用、香港云服务器零配置实现 HTTPS 等特点 ,箱即从而在强者如云的开源S开 Web 服务器中占据了一席之地 。

在这个 HTTPS 必选的后起时代 ,Caddy 凭借无需额外配置自动 HTTPS,秀自带分分钟完成 HTTPS 站点搭建 ,免费使它成为了中小型 Web 服务的箱即首选服务器。Caddy 深受开源爱好者们的喜爱 ,2014 年开源至今共收获了 3.6 万颗星 。

项目地址: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 install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf https://dl.cloudsmith.io/public/caddy/stable/gpg.key | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asccurl -1sLf https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt | sudo tee /etc/apt/sources.list.d/caddy-stable.listsudo apt updatesudo apt install caddy
1.2.3.4.5.
注意 :这种方式安装完成后会启动服务 ,开机自动启动 。
还可以下载一个可执行文件使用 。

复制$ mv caddy_linux_amd64 caddy # 将下载后的文件重命名方便后面指令输入,根据系统不同文件名不一样
$ sudo chmod a+x caddy # 为 Caddy 添加可执行权限
$ mv caddy /bin/caddy # 将 Caddy 复制到 bin 目录这样可以在命令行随时使用
1.2.3.命令行执行 caddy version 命令 ,出现版本信息:
复制v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=1.即为安装成功!
三 、从零完成 HTTPS 站点

下面将演示如何通过 Caddy 完成 HTTPS 站点。只需要 4 步 :
Tips 例子用的亿华云域名为 :caddy.hellogithub.com 修改为你的域名即可 。
第一步:安装 ,采用上面介绍的命令安装
第二步 :设置域名解析地址 ,在购买域名的网站设置。如下图 :

设置完生效需要几分钟 ,可通过下面的命令检查是否生效 :
复制curl "https://cloudflare-dns.com/dns-query?name=caddy.hellogithub.com&type=A" -H "accept: application/dns-json"1.域名设置生效,返回如下:
复制{ "Status":0,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{ "name":"caddy.hellogithub.com","type":1}],"Answer":[{ "name":"caddy.hellogithub.com","type":1,"TTL":592,"data":"107.150.122.176"}]}1.第三步:创建配置文件 Caddyfile ,无需额外的开启 HTTPS 的设置:
复制caddy.hellogithub.comrespond "Hello HTTPS!"1.2.3. 域名访问返回的建站模板内容第四步 :启动 ,在同一目录下执行命令 :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 [] # 子指令}
Caddyfile 的文件结构如图所示:

4.3 演示
下面将演示如何用 Caddy 搭建站点,加深理解配置格式和命令使用 。
目录结构:
复制.
├── Caddyfile
├── index.html└── public
└── HG.html1.2.3.4.5.两个页面文件 index.html 和 HG.html 的内容如下 :
复制<!-- index.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Hello World!</title></head><body>你好 ,世界 !
</body></html>1.2.3.4.5.6.7.8.9.10.11. 复制<!-- HG.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>HelloGitHub</title></head><body>HelloGitHub
</body></html>1.2.3.4.5.6.7.8.9.10.11.Caddyfile 配置内容如下:
复制# 如果本机没有 wordpress 则注释这一块儿的站点配置
#:80 {# 部署一个 wordpress 站点
# root * /var/www/wordpress
# php_fastcgi unix//run/php/php-version-fpm.sock# 配置一个 fastcig 服务
# file_server # 配置一个文件服务
#}http://localhost:3000 { basicauth /public/* { # 匹配访问 localhost:3000/public/* 的请求 ,为其加上登陆保护 HG JDJhJDE0JGEySk9janFMdHlBY2Y0aVdQZklQak9HcmwzNDZhNFg0N3V5Ny9EZkZMZHB1Nkt4ZE5BNGJt # 用户名 HG 密码 HelloGitHub,密码使用 caddy hash-passowrd 指令生成 } root * ./ # 设置当前站点根目录为当前文件夹 ,* 表示匹配所有的 request templates file_server { # 配置当前站点为静态文件服务器 ,可用于博客系统的搭建 hide .git # 隐藏所有的 .git 文件 }}:4000 { reverse_proxy /public/* http://localhost:3000 # 配置反向代理 # 只会匹配 locahost:4000/public 的请求,转发到 localhost:3000/public/}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.在当前目录输入:
复制$ caddy run # 启动 Caddy
1.最后 ,效果如下:
访问 :http://localhost:3000 可以看到页面展示 “你好,世界!”
访问: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 有了一些了解 ,有没有一种相见恨晚的感觉?
虽然它的性能比不了 Nginx 但如果论上手的难易度,Caddy 甩 Nginx 几条街!主要是默认开启 HTTPS 功能太香了,你什么都不用管就可以免费 、快速、轻松开启网站 HTTPS。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“商站动力”。http://www.noorid.com/html/893c499102.html
相关文章
网络安全运营关键绩效指标简析
系统运维只有可以被衡量的事才能得到有效管理,对于网络安全运营工作更是如此。在日常工作中,安全运营团队应该通过可量化的指标向企业管理层和其他业务部门展示组织当前的网络安全建设状况和风险态势,同时证明现有的网络安 ...
【系统运维】
阅读更多一篇教会你用Jetty配置Https
系统运维由于工作需要,需要测试Jetty配置HTTPS的解析情况,本篇记录下Jetty下的HTTPS的配置。一、简单介绍1.1 Jetty介绍Jetty 是一个Servlet引擎,是一个可扩展和非常灵活的应用 ...
【系统运维】
阅读更多使用BIOSU盘装系统的完整教程(轻松学会使用BIOSU盘安装操作系统)
系统运维随着计算机技术的不断发展,安装操作系统的方法也越来越多样化。而使用BIOSU盘安装系统是一种常见且方便的方法。本文将为大家详细介绍如何使用BIOSU盘进行系统安装,让您轻松掌握这一技巧。准备工作在使用 ...
【系统运维】
阅读更多
热门文章
最新文章
友情链接
- 第二届“长城杯”信息安全铁人三项赛(防护赛)总决赛圆满收官
- 如何安全部署和升级服务?
- 深信服秋季新品重磅发布:安全GPT4.0数据安全大模型与分布式存储EDS新版本520,助力数字化更简单、更安全
- Gartner预测到2027年,跨境GenAI滥用引起的AI数据泄露比例将达到40%
- 担心B2C API遭爬虫攻击?你可能忽略了一个更大的风险
- 网络安全里的人工智能模型:从误用到滥用
- 苹果手机72小时不用会自动锁死?
- 微软可信签名服务遭滥用,恶意软件借机获得合法签名
- 苹果、特斯拉均受影响,新型漏洞迫使GPU无限循环,直至系统崩溃
- 黑客正在寻找利用AI的新方法 亿华云网站建设企业服务器b2b信息平台云服务器香港物理机源码库