Caddy介绍
引言
VPS最大的用处就是搭建各种网络服务,Web服务器是必不可少的工具。今天介绍一个对新手特别友好的Web服务器——Caddy。我以前用过Apache和Nginx,后面就转向Caddy了。
什么是Caddy?
Caddy是一个用Go语言编写的开源Web服务器。它最大的特点就是简单易用,很多复杂的功能都能自动完成,特别适合刚入门的小伙伴。
常见Web服务器对比
和其他两款Web服务器比较一下。
1. Nginx
– 优点:高性能、低内存占用
– 缺点:配置相对复杂
– 适合:高并发场景
- Apache
- 优点:模块丰富、社区支持好
- 缺点:性能相对较低
- 适合:传统企业应用
Caddy的三大优势
- 自动HTTPS:Caddy会自动帮你申请和管理SSL证书,使用Nginx和Apache就需要设置定时任务来更新证书,这也是我切换到Caddy的原因。
- 配置简单:只需要几行配置就能完成复杂的服务器设置。
- 功能丰富:内置反向代理、文件服务、模板渲染等实用功能。
为什么需要HTTPS?
这里的S代表安全(Security)。如果我们HTTP协议,那么我们和WEB服务器来回传递的数据是没有加密的,可以被互联网看到的。
这样还可能出现中间人攻击(Man-in-the-Middle Attack),黑客劫持了域名,我们访问这个域名,以为访问的是正牌的Web服务器,实际访问的是黑客做的冒牌服务器,冒牌服务器把收到的数据转发给正牌服务器,再把收到的正牌服务器的回复转发给我们,在这个过程中还可以偷偷修改传递的数据。这个中间人就在我们不知不觉中获取了大量的数据。
HTTPS通过以下方式解决了这个问题:
1. 加密通信:即使被截获,数据也无法被解读
2. 证书验证:确保连接的是真实服务器
3. 完整性校验:防止数据在传输中被篡改
使用HTTPS必须要绑定域名,因此申请个域名也是极好的,它还有这些好处:
1. 便于记忆:相比IP地址,域名更容易记住和分享
2. 支持多站点:通过多个域名管理多个网站
Caddy安装和配置
- 在Alam上安装caddy,同时添加防火墙规则
dnf -y install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf -y install caddy
firewall-cmd --add-service http --permanent
firewall-cmd --add-service https --permanent
firewall-cmd --reload
- 配置网站
比如我现在有一个域名test.vpsdiy.tech
,需要在/etc/caddy/Caddyfile
中添加一条配置:
test.vpsdiy.tech {
root * /usr/share/caddy/test
tls xx@xx.com
file_server
}
这里xx@xx.com
要替换成有效的邮箱,Caddy申请SSL证书要用到,这个证书可能是Let’s Encrypt发放的免费证书。
root定义的目录是test.vpsdiy.tech
这个网站的根目录,在这个目录下创建一个文件,比如/usr/share/caddy/test/hello.txt
,就可以通过https://test.vpsdiy.tech/hello.txt
看到这个文件的内容。
不要忘记重启Caddy,不然https://test.vpsdiy.tech
还访问不了。
待续
后面还会介绍域名申请、动态网页等内容。