Caddy服务器

地址。按官网所说安装
Caddy为golang程序,不会有各种依赖,单独的一个文件就是执行程序,cp到 /usr/local/bin就安装完成了。

输入whereis caddy可以看到 /usr/bin/caddy/etc/caddy/Caddyfile/usr/share/caddy,其中etc/caddy/Caddyfile是配置文件。编辑配置文件 vim Caddyfile

1
2
3
4
{
admin off
}
import /etc/caddy/sites/*.conf

再在 /etc/caddy 下新建 sites 文件夹,此后,将配置文件写里面即可。
配置文件 vim example.com.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 不指定服务端口,或者指定了服务端口但不是80端口,则默认使用SSL,且端口为443
example.com {
root * /var/www
file_server
}


# http方式1
example.com:80 {
root * /var/www
file_server
}
# http方式2
http://example.com:xxxx {
root * /var/www
file_server
}


# 使用自定义SSL证书
example.com {
root * /var/www
tls 公钥路径 私钥路径
file_server
}


# 映射多个域名
example1.com, example2.com {
root * /var/www
file_server
}


# 反向代理
example.com {
# 1. 访问https://example.com,实际上是访问localhost:8888
reverse_proxy localhost:8888
# 2. 访问https://example.com/example,实际上是访问localhost:8888
reverse_proxy /example localhost:8888
# 3. 访问https://example.com/example,实际上是访问localhost:8888/example
reverse_proxy / localhost:8888/example/
# 4. websocket反向代理。客户端请求的wss://ws.example.com/ws,实际为wss://127.0.0.1:8888/ws
reverse_proxy /ws 127.0.0.1:8888
}


# 域名重定向1:访问example1.com会301(永久重定向),并重定向到example2.com
example1.com {
redir https://example2.com{url}
}
# 域名重定向2:访问example1.com会302(临时重定向),并重定向到example2.com
example1.com {
redir https://example2.com{url} permanent
}


# 负载均衡
example.com {
reverse_proxy localhost:x localhost:y {
lb_policy first
}
}


# 跨域访问

一个比较全面的caddy配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
example.com {
# gzip压缩,提高访问速度
gzip
# 允许浏览站点目录,不填默认禁止
browse
# 日志存放地址
log /etc/caddy/log/access.log
# 反向代理
revers_proxy localhost:xxxx {

}
errors {
log /etc/caddy/log/error.log {
# 大于50m,则自动分割
size 50
# 最多保留30天
age 30
# 最多保存5个文件
keep 5
}
}
}

修改配置后,systemctl reload caddy重加载配置。