这个是逗比根据地的备份镜像站(非官方)。牢记域名: [doubibackup.com]。搜索:标签云
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

Shell脚本 Toyo 40评论
广告
本文最后更新于 2018年11月5日 14:23 可能会因为没有更新而失效。如已失效或需要修正,请留言!

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。

点击展开 查看更多


提示 wget: command not found 的错误

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

点击展开 查看更多


Caddy下载文件频繁中断

点击展开 查看更多


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

点击展开 查看更多


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

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

点击展开 查看更多


启动 Caddy后,无法访问

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

点击展开 查看更多


升级脚本

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

更新日志

2018年10月08日,版本 v1.0.8

1. 新增 支持 ARM(armv7l) 安装。

2018年03月19日,版本 v1.0.7

1.修复 下载 Caddy 报错400的问题。

点击展开 查看更多

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

赞 (11)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(40)个小伙伴在吐槽
  1. 我忘了我之前都加了什么插件,哪里可以查看呢?
    dray2018-10-25 18:28 回复
    • 去 Caddy 安装目录下执行:
      # 脚本安装目录:/usr/local/caddy
      ./caddy -plugins
      
      Toyo2018-10-25 18:41 回复
      • 谢谢
        dray2018-10-26 14:03 回复
  2. URL failed to get certificate: acme: Error 400 - urn:ietf:params:acme:error:connection - Fetching URL/.well-known/acme-challenge/D0r0EZtuqSXDDDDXXXXXgtvtnaV5uuohUnLI: Timeout during connect (likely firewall problem) 已开放80 443
    halo2018-09-14 22:42 回复
  3. 老大,我用caddy+v2ray+CloudFlare+Websocket,一直都正常,但今天出问题了,代理和网页都不行,访问网页提示:连接 www.XXXXXX.tk 时发生错误。 无法安全地与对等端通信:没有双方共用的加密算法。 错误代码: SSL_ERROR_NO_CYPHER_OVERLAP,我看证书是8月16号的,还没有到期啊,caddy.v2ray也正常运行,找不到原因了
    ygra2018-09-07 09:51 回复
  4. 我在魔方云的Ubuntu18.04上用这个脚本,caddy正常运行,但是netstat显示没绑定任何端口,网站也无法访问是怎么回事呢?
    Zvonimir2018-06-12 15:08 回复
    • 没有成功监听端口,说明 Caddy 根本没有正常运行。
      Toyo2018-06-13 08:31 回复
  5. 站长,debian9系统依然报错400
    piaopiaole2018-05-14 23:41 回复
    • 用的是老版本脚本?如果是最新版本的话,请贴出脚本操作期间完整输出信息。
      Toyo2018-05-15 13:14 回复
  6. 请问一下,用脚本安装的caddy如何加-quic参数运行呢?
    屠夫94412018-04-28 01:12 回复
    • 打开服务脚本:/etc/init.d/caddy
      # 找到位于 40行左右的下面这行代码
      nohup "$BIN" --conf="$CONF" -agree >> /tmp/caddy.log 2>&1 &
      # 你可以把想要添加的启动参数追加到 -agree 的后面, > > 的前面。
      
      Toyo2018-04-28 14:02 回复
  7. 重新运行脚本,安装的还是0.10.11旧版本哦,最新版是0.10.12,支持ACME V2和通配符证书。
    Lenno2018-03-28 13:25 回复
    • 脚本是从官网下载,官网什么版本下载的就是什么版本。可能是缓存原因。
      Toyo2018-03-28 13:59 回复
  8. 站长,caddy今天发布了更新,使用本脚本安装后启动失败,要求同意协议,启动日志: Your sites will be served over HTTPS automatically using Let's Encrypt. By continuing, you agree to the Let's Encrypt Subscriber Agreement at: https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf Do you agree to the terms? (y/n): 2018/03/27 13:22:34 user must agree to CA terms (use -agree flag)
    piaopiaole2018-03-27 21:33 回复
    • 已修复。重装 Caddy 或者手动下载替换服务脚本:
      # CentOS 系统:
      wget --no-check-certificate https://softs.host/Bash/other/caddy_centos -O /etc/init.d/caddy
      # Debian/Ubuntu 系统:
      wget --no-check-certificate https://softs.host/Bash/other/caddy_debian -O /etc/init.d/caddy
      
      Toyo2018-03-27 23:15 回复
  9. 大佬,ip被封的能用么?解析到cloud,能用么?
    xman2018-03-21 14:32 回复
    • Caddy和被墙的IP有什么关系。。。
      你服务器IP被墙,你无论服务器上面用什么HTTP服务,都无法直接访问这个IP。除非你挂个CDN。
      Toyo2018-03-21 14:54 回复
  10. 如何设置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 回复
  11. 用一键脚本搭建了caddy之后,假如配置文件只设置 :80{ 解析出来的domain是http://domain.ltd/download 但是如果是:80/files 则是可以访问filemanager。。。。这是为什么呢?
    逗比9982018-01-19 16:09 回复
    • 看你说的很乱,贴出你的完整配置文件(域名打码)。
      Toyo2018-01-20 00:49 回复
  12. 请问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 回复
  13. 如何安装2个及以上的插件呢
    手动Anonymous2018-01-19 02:39 回复
  14. [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 回复
  15. 一键安装后,手动启动重启查看状态都正常,但是不能开机自启动,ubuntu14.04,没启动就没日志,启动正常时日志也正常
    segwev2017-12-05 09:37 回复
    • 我在 CentOS6 7 Debian7 8 Ubuntu14.04 16.04 系统上测试都是正常开机启动的(但是不能代表所有的系统,各IDC的系统模板存在差异),如果开机后没有启动错误日志,那么说明根本没有启动,如果有错误日志则代表启动但是失败了。
      Toyo2017-12-05 12:36 回复
  16. 能不能在启动的时候添加启动参数“-quic”,很想实验性的体验一下quic
    weee2017-11-04 19:08 回复
    • 自行修改 /etc/init.d/caddy 服务脚本文件相关代码。
      Toyo2017-11-04 23:45 回复
  17. 怎么配置php呢,逗比知道不。。
    指尖2017-10-10 19:59 回复
  18. 可不可以发个手把手教caddy建站的教程呀,最好是小白也能学会那种
    break2017-10-08 13:37 回复
  19. 可以加个php7更一键化吗?
    mk2017-06-25 15:54 回复
    • 这个脚本仅仅是为了方便其他脚本或教程使用而写的,只需要实现一键安装Caddy即可,其他功能(PHP MYSQL等)都不会考虑添加,毕竟他不是一个LNMP类的脚本。
      Toyo2017-06-25 21:54 回复
  20. 希望支持arm设备,比如树莓派 :lol:
    starP2017-04-19 11:07 回复
  21. 求指点,通过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 回复