如何在 Linux 上使用 Caddy 托管 HTTPS 网站
Web 服务器是一个服务器端应用程序,旨在处理客户端和服务器之间的 HTTP 请求。 HTTP 是基本且使用非常广泛的网络协议。
Apache HTTP Server 在设计当今的 Web 方面发挥了重要作用。仅它的市场份额就达到37.3%。 Nginx 排名第二,市场份额为 32.4%。 Microsoft IIS 和LiteSpeed 分别排名第三和第四,市场份额分别为7.8% 和6.9%。
最近,我遇到了一个名为Caddy的网络服务器。当我尝试询问它的功能并将其部署到测试时,我必须说它太神奇了。可移植且不需要任何配置文件的 Web 服务器。我认为这是一个非常酷的项目,想与大家分享。在这里我们尝试了一下Caddy!
凯迪是什么?
Caddy 是 apache Web 服务器的替代品,易于配置和使用。 Matthew Holt – Caddy 的项目负责人声称 Caddy 是一个通用网络服务器,声称是为人类设计的,并且可能是同类中唯一的。
Caddy 是唯一可以使用 Let’s Encrypt 自动获取和续订 SSL/TLS 证书的首个网络服务器。
球童的特点
- 使用 HTTP/2 的快速 HTTP 请求。
- 功能强大的 Web 服务器,配置最少,部署无忧。
- TLS 加密可确保通过 Internet 进行通信的应用程序和用户之间的加密。您可以使用自己的密钥和证书。
- 易于部署/使用。只有一个文件,不依赖于任何平台。
- 无需安装。
- 可移植的可执行文件。
- 在多个 CPU/核心上运行。
- 先进的 WebSockets 技术 – 浏览器和服务器之间的交互式通信会话。
- 服务器动态 Markdown 文档。
- 全面支持最新的IPv6。
- 创建自定义格式的日志。
- 提供 FastCGI、反向代理、重写和重定向、干净 URL、Gzip 压缩、目录浏览、虚拟主机和标头。
- 适用于所有已知平台 – Windows、Linux、BSD、Mac、Android。
是什么让球童与众不同?
- Caddy 的目标是在 2020 年为网络提供应有的服务,而不是传统风格。
- 它不仅旨在为 HTTP 请求提供服务,而且还为人类服务。
- 加载最新功能 – HTTP/2、IPv6、Markdown、WebSockets、FastCGI、模板和其他开箱即用功能。
- 运行可执行文件,无需安装。
- 包含最少技术描述的详细文档。
- 开发时考虑到设计师、开发人员和博主的需求和便利性。
- 支持虚拟主机 – 根据需要定义任意数量的站点。
- 适合您 - 无论您的网站是静态还是动态。如果你是人类,它就是为你而存在的。
- 你关注的是要实现什么,而不是如何实现它。
- 支持大多数平台 – Windows、Linux、Mac、Android、BSD。
- 通常,每个站点都有一个 Caddy 文件。
- 即使您对计算机不太友好,不到 1 分钟即可完成设置。
测试环境
我将在 CentOS 服务器以及 Debian 服务器上测试它,但相同的说明也适用于 RHEL 和 Debian基于的发行版。对于这两个服务器,我将使用 64 位可执行文件。
Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0
在 Linux 中安装 Caddy Web 服务器
无论您使用什么平台和哪种架构,caddy 都提供现成的二进制包,可以使用默认的包管理器进行安装,如图所示。
在 Fedora、RedHat、CentOS 中安装 Caddy
我们将从 CORP 存储库中的 Fedora 或 RHEL/CentOS 8 下安装最新版本的 Caddy Web 服务器。
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy
在 RHEL/CentOS 7 上使用以下命令。
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
在 Debian 和 Ubuntu 中安装 Caddy
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt update
sudo apt install caddy
安装 caddy Web 服务器后,您可以使用以下 systemctl 命令启动、启用和检查服务的状态。
systemctl start caddy
systemctl enable caddy
systemctl status caddy
现在打开浏览器并将浏览器指向以下地址,您应该能够看到球童欢迎页面。
http://Server-IP
OR
http://yourdomain.com
使用 Caddy 设置域
要设置域,首先,您需要在 DNS 控制面板中将域的 A/AAAA DNS 记录指向此服务器。接下来,在文件夹 /var/www/html
下为您的网站 "example.com"
创建文档根目录,如图所示。
mkdir /var/www/html/example.com
如果您使用 SELinux,则需要更改 Web 内容的文件安全上下文。
chcon -t httpd_sys_content_t /var/www/html/example.com -R
chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R
现在打开并编辑位于 /etc/caddy/Caddyfile
的 caddy 配置文件。
vim /etc/caddy/Caddyfile
将 :80
替换为您的域名,并将站点根目录更改为 /var/www/html/example.com
,如图所示。
重新加载 Caddy 服务以保存配置更改。
systemctl reload caddy
现在创建任何 HTML 页面(您可以创建自己的页面)并将页面保存在您网站的文档根目录下。
touch /var/www/html/example.com/index.html
将以下示例 Html 代码添加到您网站的索引页。
echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html
现在再次访问您的网站以查看您的页面。
如果一切配置正确,您的域将通过 HTTPS 协议提供服务,表明您的连接是安全的。
结论
如果您是新手并且想要设置网络服务器而不需要亲自进行配置,那么这个工具适合您。即使您是一位经验丰富的用户,需要即时且简单的 Web 服务器,Caddy 也值得一试。如果您需要设置更复杂和高级的网络服务器,只需进行一些配置,您还可以设置文件夹权限、控制身份验证、错误页面、Gzip、HTTP 重定向等。
不要将 Caddy 视为 Apache 或 Nginx 的替代品。 Caddy 并不是为处理高流量生产环境而设计的。当您关心速度和可靠性时,它专为快速网络服务器设置而设计。
参考
Caddy Web 服务器的完整用户指南/完整文档
我们带来了此文档,旨在快速查看和安装说明,并在必要时提供图像。如果您发现该项目的任何优点/缺点或任何建议,您可以在我们的评论部分中向我们提出。
对我来说,这个项目还太年轻,但仍然可以完美地工作,并且看起来强大且有前途。我认为最大的优点是 caddy 不需要到处携带它的配置文件。它旨在提供 Nginx、Lighttpd、vagrant 和 Websocketd 的最佳功能。这都是我这边的。保持与 Howtoing 的连接。荣誉