使用Nginx
已经很多年了,但是也只是使用了它的一部分功能,虽然它安装也很方便,其它很多功能我也并没有使用到。在接触到Caddy后也有两年多了,发现这工具确实不错。于是趁着这个点,把Nginx
换掉,使用Caddy
实现博客需求。
个人博客比较简单也没用到什么,之前使用Nginx
也只是做一个游量入口,把请求响应到后端的Go程序。
所以使用caddy也一样,只需要这样功能就行了。而且caddy会自动实现https
功能。这个连证书都不需要去申请了。
博客服务器在2月15号就到期了,续费太贵了,只能从新购买一台。在新的机器上我选择了ubuntu
系统,以前的服务器都是使用Centos
系统,之所有换成ubuntu
系统,也是因为我的笔记本也换成了ubuntu
系统快三年了,一直使用也很方便。
安装caddy软件
ubuntu直接根据官方的提供的方式安装
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-testing-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-testing.list sudo apt update sudo apt install caddy
为了方便处理我把配置文件
Caddyfile
放在了一个目录下mkdir .caddy cd .caddy touch Caddyfile
Caddyfile
的内容如下(根据个人情况需要修改)www.58jb.com { root * /var/www/caddy file_server @cachedFiles { path *.jpg *.jpeg *.png *.gif *.ico *.css } header { enable HSTS Strict-Transport-Security max-age=31536000; @cachedFiles Cache-Control "public, max-age=604800, must-revalidate" } @excludeDirs { not path /uploads* } reverse_proxy @excludeDirs 127.0.0.1:8000 }
@cachedFiles
定义一个缓存文件列表,以空格分隔header
表示网站响应头里的信息,这里启用了HSTS
,它和Strict-Transport-Security
配套使用,同时加入了上面的@cachedFiles
缓存表下,把这里文件添加一个缓存时间。@excludeDirs
定义一个排除的目录,因为我的程序主要以Go实现的一个Web服务,而Caddy就是把请求代理到后端的Go程序中,而@excludeDirs
中定义的目录是一些静态文件,并不是经过后端程序的,所以把它排除掉。而这个目录是存放在root
目录下的。reverse_proxy @excludeDirs
处理一个代理请求,把上面的排除目录加到里面,剩下的都需要经过后端处理。
启动服务
使用apt安装的方式就是简单方便,启动的时候也是很简单。我直接进入到
.caddy
目录下执行cd .caddy sudo caddy start #这样就以后台方式启动,如果使用run的方式就是在当前窗口中启动,服务一直挂着,直到Ctrl+C结束。
目前来讲Caddy
的功能丰富,配置也比较简单。但是更多的高级用法,需要自己去研究一下。用它来替代Nginx
的话应该不是问题。感觉比较香的还是网站中的https
证书不用管了。