[Caddy2] 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM