Caddy

CADDY 笔记

安装:

//官方推荐一键安装脚本
/* curl https://getcaddy.com | bash -s personal 或者 wget -qO https://getcaddy.com | bash -s personal http.git,dns 而后 which caddy 能够看到caddy安装到了/usr/local/bin/caddy 此时执行 caddy 再打开2015端口 就能够看到web页面了 */

复制代码

Caddy配置

1.建立配置文件
  • 配置文件放在 /etc/caddy里javascript

    sudo mkdir /etc/caddyphp

    sudo touch /etc/caddy/Caddyfilejava

    sudo chown -R root:www-data /etc/caddylinux

  • 除了配置文件,caddy会自动生成ssl证书, 须要一个文件放置ssl证书nginx

sudo mkdir /etc/ssl/caddygit

sudo chown -R www-data:root /etc/ssl/caddygithub

sudo chmod 0770 /etc/ssl/caddyweb

由于 ssl 文件夹里会放置私钥,因此权限设置成 770 禁止其余用户访问。 最后,建立一下放置网站文件的目录,若是已经有了,就不须要建立了。后端

sudo mkdir /var/wwwapi

sudo chown www-data:www-data /var/www

2.设置开机启动

systemd system + d 其中的d就是daemon 守护进程

//如何配置systemd
sudo curl -s                      		https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linuxsystemd/caddy.service
-o /etc/systemd/system/caddy.service // 从 github 下载 systemd 配置文件 
sudo systemctl daemon-reload # 从新加载 systemd 配置 
sudo systemctl enable caddy.service # 设置 caddy 服务自启动 
sudo systemctl status caddy.service #查看caddy状态
复制代码
3.编辑caddyfile

详情查看文档.

若是修改了Caddyfile但没有生效,须要执行一下 sudo systemctl restart caddy.service 来重启caddy

4.caddyfile格式

1: localhost:8080

地址能够带一个端口号,那么 caddy 只会在这个端口上开启 http 服务,而不会开启 https,若是不 写端口号的话,caddy 会默认绑定 80 和 443 端口,同时启动 http 和 https 服务。地址后面能够 再跟一大堆指令(directive)。Caddyfile 的基本格式就是这样,由一个网站地址和指令组成。

2.指令

指令能够为网站开启某些功能.

gzip | browse | log /var/log/caddy/access.log |tls 391086388@qq.com | root /var/www

  • log 为网站开始日志记录,后面的路径为日志路径

  • tls 自动申请https证书 邮箱为CA申请人的邮箱

    redir / wzfou.com/archive/{ur… 301

  • redir 指令带了三个参数,意思是把全部的请求使用 301 重定向,这个指令在给网站换域名时颇有用在这个例子里还使用了 {uri} 这样的占位符(placeholder),详细的列表能够在这里查询到:caddyserver.com/docs/placeh…

    tls /etc/ssl/cert.pem /etc/ssl/key.pem

  • tls分别传了证书和私钥的路径,这样的话 caddy 就不会去自动申请证书,而是使用路径给出证书

wzfou.com
gzip
log /var/log/caddy/access.log
tls iwzfou@gmail.com
root /var/www/
header /api {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods “GET, POST, OPTIONS”
-Server
}
fastcgi / 127.0.0.1:9000 php {
index index.php
}
rewrite {
to {path} {path}/ /index.php?{query}
}
//Caddyfile
//这是指令中复杂的一种,能够带不少参数,因此须要{}括起来.好比上面的herder指令
6-10 行的 header 指令表明为全部的 /api/xxx 的请求加上 Access-Control-Allow-Origin 和
Access-Control-Allow-Methods 这两个 header,从而能支持 javascript 跨域访问 ,第 9 行表明
删除 Server header,防止别人看到服务器类型。
11-13 行使用了 fastcgi 指令,表明把请求经过 fastcgi 传给 php,ruby 等后端程序。
14-15 行,使用了 rewrite 指令,这个指令的做用是 服务器内部重定向 在下面的参数 to 后面,又
跟了三个参数,这个功能上有点相似 nginx 的 try_files 。告诉 caddy 须要先查看网址根目录
/var/www 里有没有 {path} 对应的文件,若是没有再查看有没有 {path} 对应的目录,若是都没
有,则转发给 index.php 入口文件。这个功能通常会用在 PHP 的 MVC 框架上使用。

复制代码

多域名网站

wzfou.com {
gzip
log /var/log/caddy/wzfou_com.log
tls iwzfou@gmail.com
root /var/www/
header /api {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods “GET, POST, OPTIONS”
-Server
}
fastcgi / 127.0.0.1:9000 php {
index index.php
}
rewrite {
to {path} {path}/ /index.php?{query}
}
}
wzfou.com{
tls iwzfou@gmail.com
log /var/log/caddy/wzfou_com.log
redir / https://wzfou.com/{uri} 301
}
基本的 caddy 配置就这些,更多的内容须要查阅官网文档:
https://caddyserver.com/docs。

echo "http://gongluchen.com {
 timeouts none
 redir https://gongluchen.com{url}
}
https://gongluchen.com {
 root /usr/local/caddy/www/file
 timeouts none
 tls 39108638@qq.com
 gzip
 filemanager / /usr/local/caddy/www/file {
  database /usr/local/caddy/filemanager.db
 }
}" > /usr/local/caddy/Caddyfile
复制代码
localhost:2018
gzip
browse
复制代码

$ caddy 就能够当网盘了

相关文章
相关标签/搜索