The Caddy Web Server 常见 Caddyfile 模式

Posted Ethan Plan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The Caddy Web Server 常见 Caddyfile 模式相关的知识,希望对你有一定的参考价值。

 

Caddyfile 是 JSON 配置的易用写法,支持通常用的功能,完整功能还是需要 JSON 配置的。

以下适用于 Caddy2 版本的配置。

 

静态文件服务器

 

example.com

root * /var/www
file_server

通常第一行是站点地址,root 代表站点根路径,* 代表访问所有路径,也可以匹配其它路径,后面跟文件位置,最后开启文件服务器。

 

反向代理

 

代理所有请求:

example.com

reverse_proxy localhost:5000

 

代理 /api/ 路径的请求到指定地址,并开启静态文件服务器:

example.com

root * /var/www
reverse_proxy /api/* localhost:5000
file_server

 

PHP

 

在运行 php FastCGI 的服务下,适用大多数 PHP 应用:

example.com

root * /var/www
php_fastcgi /blog/* localhost:9000
file_server

自定义站点路径 * 和访问路径 /blog/*,本例假定所有 PHP 请求路径为 /blog/*,其它请求以静态文件服务。

php_fastcgi 实际上是一系列 扩展配置 的简写方式,如果 php_fastcgi 不适用你的站点,请参考扩展配置进行修改。

php_fastcgi 是为 PHP 应用量身定制的,针对单入口 index.php 而设计。 

 

重定向 www. 子域

 

添加 www. 到 HTTP 重定向中:

example.com {
    redir https://www.example.com{uri}
}

www.example.com {
}

 

移除 www. 通过重定向到主域:

www.example.com {
    redir https://example.com{uri}
}

example.com {
}

 

末尾斜线

 

通常不需要自己配置,file_server 会根据访问的资源是 文件 还是 目录 自动添加和删除末尾斜线。

如果你需要,依然可以通过配置强制使用斜线,有两种方式:内部和外部。

 

内部强制,通过 rewrite 指令,重写加上或删除末尾斜线。

example.com

rewrite /add     /add/
rewrite /remove/ /remove

通过 rewrite 方式,带有斜线和不带斜线的请求是一样的。

 

外部强制,通过 redir 指令,Caddy 会让浏览器改变 URL 来加上和删除斜线。

example.com

redir /add     /add/
redir /remove/ /remove

使用重定向,客户端将必须重新发起请求,强制使用一个可接受 URL 的资源。

 

Caddyfile 结构Caddyfile 指令Request MatchersGlobal Options,Common Patterns

Ref:https://caddyserver.com/docs/caddyfile/patterns

Link:https://www.cnblogs.com/farwish/p/13098894.html

以上是关于The Caddy Web Server 常见 Caddyfile 模式的主要内容,如果未能解决你的问题,请参考以下文章

Caddy – 方便够用的 HTTPS server 新手教程

caddy server 几个常用插件

web 服务器新秀 caddy 安装部署

caddy server 默认https && http2的验证

Caddy环境下一些Web应用程序的配置参考

强烈推荐:一个比 Nginx 功能更强大的 Web 服务器