Caddy是我最近发现的一个 HTTP服务器,可以非常简单的安装(Go语言编写,二进制单文件),配置文件也很简单,同时还有一些有趣的扩展,可以非常方便的搭建一个HTTP服务,所以写了一个一键脚本,让其他教程可以调用。
系统要求
CentOS 6+ / Debian 6+ / Ubuntu 14.04 +
推荐 Debian 8 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。
脚本版本
Ver: 1.0.8
本脚本只是一个一键安装+运行控制的脚本,没有其他管理虚拟主机等功能。
安装步骤
执行下面的代码安装 Caddy,默认给你们安装了 filemanager扩展(在线文件管理器/私人网盘),如果你不调用扩展的话,是不会占据额外内存的。
如果想要安装其他扩展可以把名字加到命令后面,例如安装扩展:http.filemanager、http.git、http.filter
那么就是: bash caddy_install.sh install http.filemanager,http.git,http.filter
(扩展之间英文半角逗号分割),扩展列表看这里。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager
使用说明
启动:/etc/init.d/caddy start
停止:/etc/init.d/caddy stop
重启:/etc/init.d/caddy restart
查看状态:/etc/init.d/caddy status
查看Caddy启动日志: tail -f /tmp/caddy.log
安装目录:/usr/local/caddy
Caddy配置文件位置:/usr/local/caddy/Caddyfile
Caddy自动申请SSL证书位置:/.caddy/acme/acme-v02.api.letsencrypt.org/sites/xxx.xxx(域名)/
查看已安装的插件
./caddy -plugins
升级Caddy或者更新扩展
只需要重新执行你当初安装时候用的命令即可,会覆盖安装最新的Caddy+扩展(如有)
卸载Caddy
卸载不会删除虚拟主机的内容,只会删除Caddy自身和配置文件。
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && bash caddy_install.sh uninstall
其他说明
提示wget: unknown host “raw.githubusercontent.com” 之类的错误
这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。
echo "nameserver 8.8.8.8 nameserver 8.8.4.4" > /etc/resolv.conf
提示 wget: command not found 的错误
这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。
# CentOS系统: yum install -y wget # Debian/Ubuntu系统: apt-get install -y wget
Caddy下载文件频繁中断
可能是因为 Caddy的超时时间机制导致的,可以在配置文件中加入这句代码 timeouts none
,例如这样:
http://toyoo.pw ( timeouts none root /home/www ... )
启动提示失败,或提示成功但是实际失败
启动失败或提示成功但是实际失败,请查看日志,如果看到类似这个提示:
2017/0X/0X XX:XX:XX listen tcp :80: bind: address already in use
那么说明是因为端口被占用导致的无法绑定端口从而无法启动。
用这个命令 netstat -lntp
查看一下那个程序占用了端口并结束它。
这个已经不需要了,所以隐藏起来
Caddy启动失败,打开 http://ip 显示的是 It works !
一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。
netstat -lntp # 我们可以通过这个命令查看是不是被其他软件占用了 80 端口。
不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。
停止 Apache2
# CentOS系统 /etc/init.d/httpd stop # Debian/Ubuntu系统 /etc/init.d/apache2 stop # 尝试使用上面代码关闭,如果没效果或者提示什么错误无法关闭,那就用下面这个强行关闭进程。 kill -9 $(ps -ef|grep "apache2"|grep -v "grep"|awk '{print $2}')
取消开机自启动
# CentOS 系统 chkconfig --del httpd # Debian/Ubuntu 系统 update-rc.d -f apache2 remove
卸载 Apache2
# CentOS 系统 yum remove httpd # Debian/Ubuntu 系统 apt-get remove --purge apache2
关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。
/etc/init.d/caddy start
启动 Caddy后,无法访问
这个可能是防火墙的问题,开放防火墙端口即可。
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT iptables -I INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT # 删除防火墙规则,内容一样把 -I 换成 -D 就行了: iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 端口 -j ACCEPT iptables -D INPUT -m state --state NEW -m udp -p udp --dport 端口 -j ACCEPT
升级脚本
升级脚本只需要重新下载脚本文件就可以了,会自动覆盖原文件。
更新日志
2018年10月08日,版本 v1.0.8
1. 新增 支持 ARM(armv7l) 安装。
2018年03月19日,版本 v1.0.7
1.修复 下载 Caddy 报错400的问题。
2017年08月03日,版本 v1.0.6
1.新增 可重复运行脚本 bash caddy_install.sh install < 扩展名>
来更新Caddy或扩展(如有)。
2017年05月11日,版本 v1.0.5
1.修复 Caddy安装状态检测错误的问题。
2.修改 卸载将不再会删除其目录下的所有文件,只会删除Caddy自身文件。
2017年04月27日,版本 v1.0.4
1.修复 因系统根证书不完整导致不信任Caddy官网,从而无法下载文件的问题。
2017年04月21日,版本 v1.0.3
1.更新 最新的官方下载链接(Caddy官方网站改版了,下载连接也变了)。
2017年04月03日,版本 v1.0.2
1.新增 32位 i686系统支持。
2017年03月24日,版本 v1.0.1
1.新增 安装时可以添加扩展参数。
—— 例如这样:bash caddy_install.sh install xxx,xxx,xxx ,扩展列表看这里
2017年03月13日,版本 v1.0.0
1. 推出 正式版。
转载请超链接注明:月下博客 » 『原创』Go语言 跨平台支持的极简 HTTP Server —— Caddy一键安装脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!