Caddy是一个非常轻量的web服务器,有原生支持HTTP/2,整合Let's Encrypt等优势,具体可以上官方网站查看信息:https://caddyserver.com/
Caddy本身是一个开源的项目,但是官方提供的binary在商业环境使用需要收费,如果您只是个人使用或者选择付费使用商业license,可以直接安装官方的安装方式
$25每个实例每月对于小开发者来说在盈利前也算是一个负担,Caddy项目本身使用的相对友好的Apache License,所以在此记录一下自己编译Caddy的过程。
本文安装环境:Ubuntu 18.04
1.安装Golang
参考这个文档,在Ubuntu下可以直接使用
sudo apt-get install golang
2.从Github获取源
使用
go env GOPATH
找到Go的安装目录,
然后cd进目录
cd $GOPATH/src
获取Caddy的源
go get -u github.com/mholt/caddy
go get -u github.com/caddyserver/builds
3.编译Caddy
进入目录
cd $GOPATH/src/github.com/mholt/caddy/caddy
编译(Linux下)
go run build.go -goos=linux -goarch=amd64
编译(Mac下)
go run build.go -goos=darwin
稍等片刻Caddy就应该编译好了,这个时候打开直接试一下
caddy
会返回以下输出:
Activating privacy features... done.
http://:2015
说明编译没什么问题,Ctrl/Command+C退出先
4.安装Caddy
在刚才的目录里
sudo cp caddy /usr/local/bin
设置权限
sudo chown root:root /usr/local/bin/caddy
sudo chmod 755 /usr/local/bin/caddy
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy
官方安装时会自动建立文件夹存储Let's Encrypt的证书,我们自己编译的话就需要自己创建
sudo mkdir /etc/ssl/caddy
sudo chown -R root:www-data /etc/ssl/caddy
官方安装时会自动生成配置文件Caddyfile, 我们自己编译的话就需要自己创建
sudo mkdir /etc/caddy
sudo chown -R root:www-data /etc/caddy
sudo touch /etc/caddy/Caddyfile
此时我们再安装systemd的控制文件
sudo cp $GOPATH/src/github.com/mholt/caddy/dist/init/linux-systemd/caddy.service /etc/systemd/system/
sudo chmod 644 /etc/systemd/system/caddy.service
sudo systemctl daemon-reload
然后就可以启动看看啦
sudo systemctl start caddy
将caddy加入开机启动
sudo systemctl enable caddy
以上基本上就完成了等同于官方提供的binary的安装过程,接下来的配置和使用等可以参见官方的教程
Comments