Web服务器是服务器端应用程序,旨在处理客户端和服务器之间的HTTP请求。HTTP是最广泛使用的基本网络协议。
Apache HTTP Server在设计当今的网络中扮演了重要角色。它占有37.3%的市场份额。Nginx以32.4%的市场份额名列第二。微软IIS和LiteSpeed分别排名第三和第四,市场份额分别为7.8%和6.9%。
最近,我遇到了一个名为Caddy的Web服务器。当我尝试查询其功能并将其部署到测试中时,可以说很棒很棒。可移植的Web服务器,不需要任何配置文件。我认为这是一个非常酷的项目,并希望与您分享。在本文,我们与大家一起尝试下Caddy!
Caddy是什么?
Caddy是易于配置和使用的Apache Web服务器的替代产品。Caddy的项目负责人Matthew Holt声称Caddy是一种通用的网络服务器,声称是最人性化的设计,并且可能是唯一的此类服务器。
Caddy是唯一一个可以使用Let's Encrypt自动获取和更新SSL/TLS证书的Web服务器。
Caddy的特点
- 使用HTTP/2的快速HTTP请求。
- 具有最少配置和无忧部署的功能强大的Web服务器。
- TLS加密可确保通过Internet进行通信的应用程序和用户之间的加密。您可以使用自己的密钥和证书。
- 易于部署/使用。仅一个文件,不依赖任何平台。
- 无需安装。
- 便携式可执行文件。
- 运行多个CPU /内核。
- 先进的WebSockets技术–浏览器和服务器之间的交互式通信会话。
- 服务器Markdown文档正在运行中。
- 完全支持最新的IPv6。
- 以自定义格式创建日志。
- 服务FastCGI,反向代理,重写和重定向,干净URL,Gzip压缩,目录浏览,虚拟主机和标题。
- 适用于所有已知平台– Windows,Linux,BSD,Mac,Android。
是什么让Caddy与众不同?
- Caddy附带了最新功能-HTTP/2,IPv6,Markdown,WebSockets,FastCGI,模板和其他现成的功能。
- 无需安装即可运行可执行文件。
- 具有最少技术描述的详细文档。
- 开发时会考虑设计师,开发人员和Blogger的需求并使其轻松入门。
- 支持虚拟主机–定义任意数量的站点。
- 适合您–无论您的站点是静态的还是动态的。如果您是人类,那是给您的。
- 您专注于实现目标,而不是实现目标。
- 支持大多数平台– Windows,Linux,Mac,Android,BSD。
- 通常,每个站点有一个Caddy文件。
- 即使您是初学者,也可以在不到1分钟的时间内完成设置。
测试环境
我将在CentOS服务器和Debian Server 上对其进行测试,但是相同的说明也适用于基于RHEL和Debian的发行版。对于这两个服务器,我将使用64位可执行文件。
操作系统:CentOS 8.1和Debian 10 Buster
Caddy版本:v2.1.1
在Linux中安装Caddy Web Server
不管您使用的是哪种平台和哪种体系结构,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欢迎页面。
使用Caddy设置域
要设置域,首先,您需要在DNS控制面板中将域的A/AAAA DNS记录指向此服务器。接下来,如图所示,"linuxmi.com"在文件夹下为您的网站创建文档根目录/var/www/html。
- $ mkdir /var/www/html/linuxmi.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
现在,在打开并编辑Caddy配置文件/etc/caddy/Caddyfile。
- # vim /etc/caddy/Caddyfile
替换:80为您的域名,然后将站点根目录更改/var/www/html/linuxmi.com为所示。
重新加载Caddy服务以保存配置更改。
- # systemctl reload caddy
现在创建任何HTML页面(您可以创建自己的HTML页面),并将页面保存在网站的文档根目录下。
- $ mkdir /var/www/html/linuxmi.com
将以下示例HTML代码添加到您网站的索引页面。
- [root@localhost /home/linuxmi/www.linuxmi.com]$echo '<!doctype html><head><title>Caddy Test Page at LinuxMi.com</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/linuxmi.com/index.html
- <!doctype html><head><title>Caddy Test Page at LinuxMi.com</title></head><body><h1>Hello, World!</h1></body></html>
现在,再次访问您的站点以查看页面。
如果正确配置了所有内容,则将通过HTTPS协议为您的域提供服务,表明您的连接是安全的。
总结
如果您是新手,并且想要在不影响配置的情况下设置网络服务器,那么此工具非常适合您。即使您是经验丰富的用户,也需要即时且简单的Web服务器Caddy值得一试。只需进行一些配置,如果您需要设置更复杂和高级的Web服务器,则还可以设置文件夹权限,控制身份验证,错误页面,Gzip,HTTP重定向等。
不要将Caddy替代Apache或Nginx。Caddy并非设计用于处理高流量的生产环境。当您关注速度和可靠性时,它可用于快速设置Web服务器。