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

A web server is a server-side application designed to process HTTP requests between client and server. HTTP is the basic and very widely used network protocol.

Apache HTTP Server 在设计今天的网络中发挥了重要作用。它独占市场份额的 37.3%。在列表中,Nginx 排名第二,市场份额为 32.4%Microsoft IISLiteSpeed 分别排在第三和第四位,市场份额分别为 7.8%6.9%

最近,我遇到了一个名为 Caddy 的 Web 服务器。当我尝试了解它的特点并进行测试部署时,我必须说它非常棒。这是一个便携式的 Web 服务器,不需要任何配置文件。我觉得这是一个非常酷的项目,想要与你分享。我们来试试 Caddy 吧!

Caddy 是什么?

Caddy 是一个替代 apache web 服务器,易于配置和使用。Caddy 的项目负责人 Matthew Holt 声称 Caddy 是一个通用的 Web 服务器,专为人类设计,可能是唯一的一种。

Caddy 是第一个能够使用 Let’s Encrypt 自动获取和更新 SSL/TLS 证书的 Web 服务器。

Caddy 的特点

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

是什么让 caddy 与众不同?

  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分钟的时间内设置,即使您对计算机不是很了解。
测试环境

I will be testing it on the CentOS server, as well as Debian Server, but the same instructions also work on RHEL and Debian based distributions. For both the server I am going to use 64-bit executables.

Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0

在Linux中安装Caddy Web服务器

无论您使用何种平台和架构,Caddy都提供了可供使用的二进制包,可以使用您的默认软件包管理器进行安装,如下所示。

在Fedora、RedHat、CentOS中安装Caddy

我们将在Fedora或RHEL/CentOS 8的CORP存储库中安装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

现在打开您的浏览器,将浏览器指向以下地址,您应该能够看到Caddy的欢迎页面。

http://Server-IP
OR
http://yourdomain.com
Caddy Web Server

使用Caddy设置域名

要设置域名,首先需要在您的DNS控制面板中将您的域的A/AAAA DNS记录指向该服务器。接下来,在文件夹/var/www/html下创建一个网站的文档根目录"example.com",如下所示。

$ mkdir /var/www/html/example.com

如果您正在使用SELinux,则需要更改Web内容的文件安全上下文。现在打开并编辑Caddy配置文件/etc/caddy/Caddyfile

# 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

现在打开并编辑Caddy配置文件位于/etc/caddy/Caddyfile

# vim /etc/caddy/Caddyfile

:80替换为您的域名,并将站点根目录更改为/var/www/html/example.com

Configure Caddy Web Server

重新加载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

现在再次访问您的网站以查看您的页面。

Hosting Website with Caddy

如果一切配置正确,您的域名将通过HTTPS协议提供服务,表示您的连接是安全的。

结论

如果您是新手,并且想要设置一个不需要通过配置来准备的web服务器,那么这个工具就是为您准备的。即使您是一个经验丰富的用户,如果您需要一个快速且简单的web服务器Caddy也值得一试。通过一点配置,您还可以设置文件夹权限、控制身份验证、错误页面、Gzip、HTTP重定向和其他功能,如果您需要设置一个更复杂和先进的web服务器。

不要将Caddy视为Apache或Nginx的替代品。Caddy并不是设计用来处理高流量的生产环境。它的设计目标是在您关注速度和可靠性时快速设置web服务器。

参考

Caddy Web服务器的完整用户指南/完整文档。

我们带来了这份文件,旨在快速查看和安装说明,必要时配有图片。如果您在项目中遇到任何优缺点或建议,可以在我们的评论部分提出。

对我来说,这个项目还太年轻,但运行无误,看起来功能强大且有前途。我看到的最大优点是 Caddy 不需要随处携带其配置文件。它旨在提供 Nginx、Lighttpd、Vagrant 和 Websocketd 的最佳功能。这就是我所能说的了。继续关注 Tecmint。干杯

Source:
https://www.tecmint.com/install-caddy-web-server-in-centos-ubuntu/