本站将不再提供免翻镜像域名,有能力的请访问:[doub.io],该域名永不更换。[直连访问方法]
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

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

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

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

系统要求

CentOS 6+ / Debian 6+ / Ubuntu 14.04 +

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

脚本版本

Ver: 1.0.7

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

安装步骤

执行下面的代码安装 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/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://raw.githubusercontent.com/ToyoDAdoubi/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年03月19日,版本 v1.0.7

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

点击展开 查看更多

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

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(37)个小伙伴在吐槽
  1. 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 回复
  2. 老大,我用caddy+v2ray+CloudFlare+Websocket,一直都正常,但今天出问题了,代理和网页都不行,访问网页提示:连接 www.XXXXXX.tk 时发生错误。 无法安全地与对等端通信:没有双方共用的加密算法。 错误代码: SSL_ERROR_NO_CYPHER_OVERLAP,我看证书是8月16号的,还没有到期啊,caddy.v2ray也正常运行,找不到原因了
    ygra2018-09-07 09:51 回复
  3. 我在魔方云的Ubuntu18.04上用这个脚本,caddy正常运行,但是netstat显示没绑定任何端口,网站也无法访问是怎么回事呢?
    Zvonimir2018-06-12 15:08 回复
    • 没有成功监听端口,说明 Caddy 根本没有正常运行。
      Toyo2018-06-13 08:31 回复
  4. 站长,debian9系统依然报错400
    piaopiaole2018-05-14 23:41 回复
    • 用的是老版本脚本?如果是最新版本的话,请贴出脚本操作期间完整输出信息。
      Toyo2018-05-15 13:14 回复
  5. 请问一下,用脚本安装的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 回复
  6. 重新运行脚本,安装的还是0.10.11旧版本哦,最新版是0.10.12,支持ACME V2和通配符证书。
    Lenno2018-03-28 13:25 回复
    • 脚本是从官网下载,官网什么版本下载的就是什么版本。可能是缓存原因。
      Toyo2018-03-28 13:59 回复
  7. 站长,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 回复
  8. 大佬,ip被封的能用么?解析到cloud,能用么?
    xman2018-03-21 14:32 回复
    • Caddy和被墙的IP有什么关系。。。
      你服务器IP被墙,你无论服务器上面用什么HTTP服务,都无法直接访问这个IP。除非你挂个CDN。
      Toyo2018-03-21 14:54 回复
  9. 如何设置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 回复
  10. 用一键脚本搭建了caddy之后,假如配置文件只设置 :80{ 解析出来的domain是http://domain.ltd/download 但是如果是:80/files 则是可以访问filemanager。。。。这是为什么呢?
    逗比9982018-01-19 16:09 回复
    • 看你说的很乱,贴出你的完整配置文件(域名打码)。
      Toyo2018-01-20 00:49 回复
  11. 请问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 回复
  12. 如何安装2个及以上的插件呢
    手动Anonymous2018-01-19 02:39 回复
  13. [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 回复
  14. 一键安装后,手动启动重启查看状态都正常,但是不能开机自启动,ubuntu14.04,没启动就没日志,启动正常时日志也正常
    segwev2017-12-05 09:37 回复
    • 我在 CentOS6 7 Debian7 8 Ubuntu14.04 16.04 系统上测试都是正常开机启动的(但是不能代表所有的系统,各IDC的系统模板存在差异),如果开机后没有启动错误日志,那么说明根本没有启动,如果有错误日志则代表启动但是失败了。
      Toyo2017-12-05 12:36 回复
  15. 能不能在启动的时候添加启动参数“-quic”,很想实验性的体验一下quic
    weee2017-11-04 19:08 回复
    • 自行修改 /etc/init.d/caddy 服务脚本文件相关代码。
      Toyo2017-11-04 23:45 回复
  16. 怎么配置php呢,逗比知道不。。
    指尖2017-10-10 19:59 回复
  17. 可不可以发个手把手教caddy建站的教程呀,最好是小白也能学会那种
    break2017-10-08 13:37 回复
  18. 可以加个php7更一键化吗?
    mk2017-06-25 15:54 回复
    • 这个脚本仅仅是为了方便其他脚本或教程使用而写的,只需要实现一键安装Caddy即可,其他功能(PHP MYSQL等)都不会考虑添加,毕竟他不是一个LNMP类的脚本。
      Toyo2017-06-25 21:54 回复
  19. 希望支持arm设备,比如树莓派 :lol:
    starP2017-04-19 11:07 回复
  20. 求指点,通过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 回复