镜像域名 doub.bid 提供给无翻墙能力的人访问,有能力的建议访问主域名:doub点io(防镜像替换 自己改点)
投稿文章 | 广告投放 | Telegram 群组 / 公告频道

『原创』Go语言 跨平台支持的极简 HTTP Server —— Caddy一键安装脚本

Shell脚本 Toyo 23评论
文章目录
[显示]
本文最后更新于 2018年1月19日 15:20 可能会因为没有更新而失效。如已失效或需要修正,请留言!

Caddy是我最近发现的一个 HTTP服务器,可以非常简单的安装(Go语言编写,二进制单文件),配置文件也很简单,同时还有一些有趣的扩展,可以非常方便的搭建一个HTTP服务,所以写了一个一键脚本,让其他教程可以调用。

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

推荐 Debian 7 x64,这个是我一直使用的系统,我的脚本在这个系统上面出错率最低。

脚本版本

Ver: 1.0.6

本脚本只是一个一键安装+运行控制的脚本,没有其他管理虚拟主机等功能。

安装步骤

执行下面的代码安装 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://softs.fun/Bash/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

# 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/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-v01.api.letsencrypt.org/sites/xxx.xxx(域名)/

升级Caddy或者更新扩展

只需要重新执行你当初安装时候用的命令即可,会覆盖安装最新的Caddy+扩展(如有)

卸载Caddy

卸载不会删除虚拟主机的内容,只会删除Caddy自身和配置文件。

wget -N --no-check-certificate https://softs.fun/Bash/caddy_install.sh && bash caddy_install.sh uninstall
# 如果上面这个脚本无法下载,尝试使用备用下载:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/caddy_install.sh && bash caddy_install.sh uninstall

其他说明

提示wget: unknown host “softs.fun” 之类的错误

这是无法解析我的域名,多半是DNS的问题,请更换DNS为谷歌DNS。

点击展开 查看更多

提示 wget: command not found 的错误

这是你的系统精简的太干净了,wget都没有安装,所以需要安装wget。

点击展开 查看更多

Caddy下载文件频繁中断

点击展开 查看更多

启动提示失败,或提示成功但是实际失败

点击展开 查看更多

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

点击展开 查看更多

启动 Caddy后,无法访问

这个可能是防火墙的问题,开放防火墙端口即可。

点击展开 查看更多

升级脚本

升级脚本只需要重新下载脚本文件就可以了,会自动覆盖原文件。

更新日志

2017年08月03日,版本 v1.0.6

1.新增 可重复运行脚本 bash caddy_install.sh install < 扩展名> 来更新Caddy或扩展(如有)。

2017年05月11日,版本 v1.0.5

1.修复 Caddy安装状态检测错误的问题。

2.修改 卸载将不再会删除其目录下的所有文件,只会删除Caddy自身文件。

点击展开 查看更多

转载请超链接注明:逗比根据地 » 『原创』Go语言 跨平台支持的极简 HTTP Server —— Caddy一键安装脚本
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (8)or打赏
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(23)个小伙伴在吐槽
  1. 如何设置Caddy开机自启动呢
    zzz2018-02-02 23:44 回复
    • 脚本配置了服务脚本并默认配置开机启动,如果开机发现没启动,那么请检查是否有日志输出,如果重启的时候有日志输出 说明是因为什么原因启动失败,而如果没有日志输出,说明根本没有启动。
      Toyo2018-02-03 00:13 回复
      • 看了下是没有日志文件的,但是我之前都是好好的,就是每次reboot服务器之后,就要手动发命令启动。感觉还是没有设置自动启动
        zzz2018-02-08 19:59 回复
        • 下面的命令就是配置 caddy 服务脚本开机启动,脚本都是默认执行的。
          # CenOS
          chkconfig --add caddy
          chkconfig caddy on
          # Debian/Ubuntu
          update-rc.d -f caddy defaults
          
          Toyo2018-02-09 10:12 回复
  2. 用一键脚本搭建了caddy之后,假如配置文件只设置 :80{ 解析出来的domain是http://domain.ltd/download 但是如果是:80/files 则是可以访问filemanager。。。。这是为什么呢?
    逗比9982018-01-19 16:09 回复
    • 看你说的很乱,贴出你的完整配置文件(域名打码)。
      Toyo2018-01-20 00:49 回复
  3. 请问caddy支持php吗?想用typecho搭建blog,但是进去浏览器进去/build/install.php只是显示一堆源码。。。是不是php环境有问题?
    逗比9982018-01-19 16:06 回复
    • Caddy 只是一个HTTP服务,相当于 Nginx 、Apache,你听说过光安装 Nginx 就能运行 PHP 网页吗?
      无论是什么HTTP服务,想要运行 PHP 网页,必须安装 PHP 环境,并且与HTTP服务对接,不过这方面我不清楚。
      Toyo2018-01-20 00:51 回复
  4. 如何安装2个及以上的插件呢
    手动Anonymous2018-01-19 02:39 回复
  5. [email protected]:~# /etc/init.d/caddy start [信息] Caddy 启动成功 ! [email protected]:~# /etc/rc2.d/S20caddy start [信息] Caddy (PID 1228 1242 1243) 正在运行... [email protected]:~# /etc/init.d/caddy status [信息] Caddy (PID 1228) 正在运行... [email protected]:~# /etc/rc2.d/S20caddy start [信息] Caddy (PID 1228 1258 1259) 正在运行... [email protected]:~# /etc/rc2.d/S20caddy stop Killed [email protected]:~# /etc/rc2.d/S20caddy status [信息] Caddy (PID 1274 1275) 正在运行... [email protected]:~# /etc/init.d/caddy status [信息] Caddy 未运行 ! [email protected]:~# /etc/rc2.d/S20caddy start [信息] Caddy (PID 1290 1291) 正在运行... [email protected]:~# /etc/init.d/caddy status [信息] Caddy 未运行 !
    segwev2017-12-05 09:58 回复
    • /etc/rc2.d/S20caddy 是什么鬼。用 ps -ef 查看进程看是不是多开了 Caddy。
      Toyo2017-12-05 12:34 回复
  6. 一键安装后,手动启动重启查看状态都正常,但是不能开机自启动,ubuntu14.04,没启动就没日志,启动正常时日志也正常
    segwev2017-12-05 09:37 回复
    • 我在 CentOS6 7 Debian7 8 Ubuntu14.04 16.04 系统上测试都是正常开机启动的(但是不能代表所有的系统,各IDC的系统模板存在差异),如果开机后没有启动错误日志,那么说明根本没有启动,如果有错误日志则代表启动但是失败了。
      Toyo2017-12-05 12:36 回复
  7. 能不能在启动的时候添加启动参数“-quic”,很想实验性的体验一下quic
    weee2017-11-04 19:08 回复
    • 自行修改 /etc/init.d/caddy 服务脚本文件相关代码。
      Toyo2017-11-04 23:45 回复
  8. 怎么配置php呢,逗比知道不。。
    指尖2017-10-10 19:59 回复
  9. 可不可以发个手把手教caddy建站的教程呀,最好是小白也能学会那种
    break2017-10-08 13:37 回复
  10. 可以加个php7更一键化吗?
    mk2017-06-25 15:54 回复
    • 这个脚本仅仅是为了方便其他脚本或教程使用而写的,只需要实现一键安装Caddy即可,其他功能(PHP MYSQL等)都不会考虑添加,毕竟他不是一个LNMP类的脚本。
      Toyo2017-06-25 21:54 回复
  11. 希望支持arm设备,比如树莓派 :lol:
    starP2017-04-19 11:07 回复
  12. 求指点,通过aria2离线了win10镜像,使用caddy下载到本地会出现只能单线程下载,并且下载不用超过1分钟就会被远程服务器关闭连接。而同一vps使用nginx则完全无压力可以满速下载。是caddy性能问题还是因为我配置的问题呢。 caddyfile只设置了http最基础的{root /etc/html/ gzip}。
    dtv2017-04-04 09:13 回复
    • 设置问题,参考https://nota.moe/2017/caddy-download-network-error-solution/
      kkren2017-04-07 22:46 回复