Caddy Web服务器,用 GO 语言写的单文件网页服务器,原生支持 HTTP/2,自动创建 Let’s Encrypt 证书。等等功能。

好久没写过东西,实在是不知道怎么说了,反正是一个有意思的Web服务器,类似于Nginx、Apache之类,但看起来更为简便轻量。

Caddy安装和使用

1、GitHub找到Caddy的发行版本下载,解压并移动到PATH目录,例如:

mv caddy_linux_amd64 /usr/bin/caddy

2、cd进入到网站文件所在目录(当然这时候得先弄个静态的文件用于测试),命令caddy运行;

3、浏览器中打开 http://localhost:2015/ 看看是否成功运行。

Note: 如果提示类似 "404 Not Found",目录下应该没有索引文件,例如
"index.html",当然这个在第2步的时候可以随便写一个。

( ̄▽ ̄)" 没错,就是这么简单!

Caddy 配置文件的使用

用到配置文件的话也简单,随便找个目录写一个Caddyfile,例如第一行监听个地址:

www.abc.com:80

然后进入网站文件目录,命令caddy就哦了!

配置文件的名称可以是任意的,如果Caddy找不到,可以用下面命令指定一下:

caddy -conf="../path/to/Caddyfile"

( ̄▽ ̄)" 没错,就是这么简单!然后更多的配置文件文档说明去官方

Systemd

先来个最简单的:

#!/bin/sh
exec /usr/local/bin/caddy -conf=/etc/Caddyfile

然后:

#!/bin/sh
exec chpst -b my-web-server -u www-data -L /var/run/caddy.lock \
  /usr/local/bin/caddy -conf=/etc/Caddyfile

进程守护(网上找的一个 Systemd 配置文件):

[Unit]
Description=Caddy Server
After=syslog.target
After=network.target

[Service]
User=root
Group=root
LimitNOFILE=64000
ExecStart=/usr/local/bin/caddy --conf=/path/to/Caddyfile -ca=https://acme-v01.api.letsencrypt.org
Restart=always

[Install]
WantedBy=multi-user.target

Supervisor/etc/supervisord/conf.d/caddy.conf):

[program:caddy]
directory=/etc/caddy/
command=/etc/caddy/caddy -conf="/etc/caddy/Caddyfile"
user=www-data
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/caddy_stdout.log
stderr_logfile=/var/log/supervisor/caddy_stderr.log

# supervisorctl reread
# supervisorctl add caddy
# supervisorctl start caddy

Caddy Server 一键安装脚本

项目地址:https://github.com/sayem314/Caddy-Web-Server-Installer

使用命令:

wget https://git.io/vra5C -O - -o /dev/null|bash

然后caddy install,绑定域名,输入邮箱(用于自动获取SSL);caddy start启动就可以了。

(但是我启动失败哈,哈哈。。line 69: sudo: command not found)~

额,刚测试了下这个脚本,貌似问题不少,先放着了,回头再折腾。