动手撸个Caddy(一)| 托管你的网站,只需一行命令
继续在Github猎奇,又看到了caddy这个Web服务器,发现star已经33K了,而且最近上升的也比较快,所以打算研究下它。
周末抽了点时间,看了下caddy的使用和代码实现,觉得挺有意思的,尤其是自动HTTPS证书管理,模块扩展很吸引我。
Caddy是什么
相信大家都知道apache、nginx,那么caddy也一样,它是一个Web服务器,可以帮你托管你的Web服务,让其他人可以通过互联网访问。
比如你想搭建一个博客,可以在互联网上被其他人访问,那么就可以使用caddy,相比nginx来说,它配置更简单。
对于caddy,官方是这么定义的:
Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go
Caddy是一个强大的、企业级的、开放源代码的web服务器,使用Go编写,并且可以自动HTTPS加密(其实就是自动配置TLS证书并管理)。
安装Caddy
得益于Go语言,caddy是一个独立的二进制包,所以它没有任何依赖,你可以直接从官网下载并安装它。
macOS下安装
首先打开浏览器,访问 https://caddyserver.com/download ,根据你自己的操作系统选择相应的二进制安装包,比如我的电脑是Mac OS,我选择的是macOS amd64 intel这个平台的二进制包。
下载后,放到你的PATH环境变量中,比如 /usr/local/bin
中即可在终端中使用。
此外,特别说明下,如果你是macOS,也可以使用brew来安装caddy。
|
|
Ubuntu下安装
如果你使用Ubuntu、Debin也可以通过 apt
命令安装:
|
|
RedHat, CentOS
CentOS7和8的安装命令不太一样,这里略作区分。
Fedora or RHEL/CentOS 8:
|
|
RHEL/CentOS 7:
|
|
Window下安装
Window下的安装和上面介绍的macOS一样,下载二进制包,然后配置好环境变量即可,这里不再赘述。
Docker下使用
caddy也支持dokcer,所以可以在dokcer中直接使用它。
|
|
安装caddy成功后,打开终端,输入caddy即可验证是否安装成功。
|
|
托管你的网站
假设你的网站存放在 ~/mysite
目录下,在终端运行如下命令,即可在浏览器中访问你的网站。
|
|
是不是非常简单,只需要这一行命令,你就可以托管一个网站。现在打开浏览器,输入 127.0.0.1
即可访问你的网站。
在以上命令中, file-server
是caddy的子命令,表示要启动一个文件服务的意思, --root
表示要以哪个文件目录作为文件服务的根目录,也就是我们的网站所在文件夹。
现在你还只能用IP来访问你的网站,如果想通过一个名字比如 localhost
,就需要通过 --domain
来指定。
|
|
现在在浏览器中就可以通过 localhost
访问你的网站了,比IP要好记。
在公网上访问你的网站
在上一小节中,你的网站还只能在本机访问,如果你想让每个人都可以访问你的网站,首先你需要有一台具备公网IP的服务器,把你的网站目录文件放在这台服务器上。
其次你要有自己的域名,比如我自己的网站 www.flysnow.org ,服务器的公网IP是 113.105.165.142
,那么你需要在DNS解析中配置www的A记录为 113.105.165.142
。
现在,在这台服务器上运行如下命令,即可让所有人都可以访问你的网站,而且是HTTPS的。
|
|
小结
caddy是非常方便的一个web服务器,它使用非常简单,并且可以帮你自动配置好tls证书,让你的网站支持https访问。
接下来,我将会继续研究caddy,然后会整理成博客文档,第一时间发表在我的公众号上,如果你也对caddy感兴趣,想学习caddy,可以关注收藏我的公众号,一起学习。
本文为原创文章,转载注明出处,欢迎扫码关注公众号
flysnow_org
或者网站asf http://www.flysnow.org/ ,第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「好看」,感谢支持。