网站搜索

如何在 Linux 上使用 Caddy 托管 HTTPS 网站


Web 服务器是一个服务器端应用程序,旨在处理客户端和服务器之间的 HTTP 请求。 HTTP 是基本且使用非常广泛的网络协议。

Apache HTTP Server 在设计当今的 Web 方面发挥了重要作用。仅它的市场份额就达到37.3%Nginx 排名第二,市场份额为 32.4%Microsoft IISLiteSpeed 分别排名第三和第四,市场份额分别为7.8%6.9%

最近,我遇到了一个名为Caddy的网络服务器。当我尝试询问它的功能并将其部署到测试时,我必须说它太神奇了。可移植且不需要任何配置文件的 Web 服务器。我认为这是一个非常酷的项目,想与大家分享。在这里我们尝试了一下Caddy

凯迪是什么?

Caddy 是 apache Web 服务器的替代品,易于配置和使用。 Matthew Holt – Caddy 的项目负责人声称 Caddy 是一个通用网络服务器,声称是为人类设计的,并且可能是同类中唯一的。

Caddy 是唯一可以使用 Let’s Encrypt 自动获取和续订 SSL/TLS 证书的首个网络服务器。

球童的特点

  1. 使用 HTTP/2 的快速 HTTP 请求。
  2. 功能强大的 Web 服务器,配置最少,部署无忧。
  3. TLS 加密可确保通过 Internet 进行通信的应用程序和用户之间的加密。您可以使用自己的密钥和证书。
  4. 易于部署/使用。只有一个文件,不依赖于任何平台。
  5. 无需安装。
  6. 可移植的可执行文件。
  7. 在多个 CPU/核心上运行。
  8. 先进的 WebSockets 技术 – 浏览器和服务器之间的交互式通信会话。
  9. 服务器动态 Markdown 文档。
  10. 全面支持最新的IPv6。
  11. 创建自定义格式的日志。
  12. 提供 FastCGI、反向代理、重写和重定向、干净 URL、Gzip 压缩、目录浏览、虚拟主机和标头。
  13. 适用于所有已知平台 – Windows、Linux、BSD、Mac、Android。

是什么让球童与众不同?

  1. Caddy 的目标是在 2020 年为网络提供应有的服务,而不是传统风格。
  2. 它不仅旨在为 HTTP 请求提供服务,而且还为人类服务。
  3. 加载最新功能 – HTTP/2、IPv6、Markdown、WebSockets、FastCGI、模板和其他开箱即用功能。
  4. 运行可执行文件,无需安装。
  5. 包含最少技术描述的详细文档。
  6. 开发时考虑到设计师、开发人员和博主的需求和便利性。
  7. 支持虚拟主机 – 根据需要定义任意数量的站点。
  8. 适合您 - 无论您的网站是静态还是动态。如果你是人类,它就是为你而存在的。
  9. 你关注的是要实现什么,而不是如何实现它。
  10. 支持大多数平台 – Windows、Linux、Mac、Android、BSD。
  11. 通常,每个站点都有一个 Caddy 文件。
  12. 即使您对计算机不太友好,不到 1 分钟即可完成设置。
测试环境

我将在 CentOS 服务器以及 Debian 服务器上测试它,但相同的说明也适用于 RHELDebian基于的发行版。对于这两个服务器,我将使用 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 的连接。荣誉