IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Caddy实战(十)| 一分钟搭建PHP服务器 -> 正文阅读

[PHP知识库]Caddy实战(十)| 一分钟搭建PHP服务器

点击上方蓝色“飞雪无情”关注我,设个星标,第一时间看文章

Caddy对于反向代理的支持我们已经介绍的差不多了,这也是我们对于Nginx、Caddy最多的应用之一,也就是把他们当成一个反向代理服务器使用。

除了我们经常见到的反向代理外,还有一类应用也可以通过反向代理来实现,它就是FastCGI,比如我们经常看到的php-fpm,它就是一个用于解释php文件的fastcgi。

对于PHP的支持,Caddy的reverse_proxy完全可以支持,但是配置比较复杂,所以Caddy为了支持PHP,专门为我们提供了php_fastcgi指令,用于配置PHP服务。

php_fastcgi 指令介绍

php_fastcgi?[<matcher>]?<php-fpm_gateways...>?{
????root?<path>
????split?<substrings...>
????env?[<key>?<value>]
????index?<filename>|off
????resolve_root_symlink
????dial_timeout??<duration>
????read_timeout??<duration>
????write_timeout?<duration>

????<any?other?reverse_proxy?subdirectives...>
}

以上就是php_fastcgi指令的表达式,相比reverse_proxy指令简单了很多。当然,php_fastcgi也支持reverse_proxy的所有子指令,这也间接证明了php_fastcgi的强大。
在大部分情况下,我们只需要配置php_fastcgi指令的配置就可以满足PHP服务的需要,只有特别的,需要单独定制的,才需要使用reverse_proxy的子指令。

好了,下面让我们看下php_fastcgi指令的每个配置都是什么意思,如何使用他们。

  1. php-fpm_gateways…&gt;?:这个不用多做解释了吧,就是后端的php-fpm服务网关,可以是socket的,也可以是http的。

  2. root?:用于设置PHP站点的根目录。

  3. split?:用于将URI拆分为两部分的字符串,主要用于拆分出真实的资源路径信息以及设置PATH_INFO变量,默认是?.php?。

  4. env?:可以设置一些额外的环境变量。

  5. index?:指定索引文件,比如?index.php?等,也可以使用?off?将其关闭。

  6. resolve_root_symlink?:如果?root?指令配置的是一个符号链接,那么通过它,可以解析出?root?的真实路径。

  7. dial_timeout?、?read_timeout?、?write_timeout?:没啥特殊的,就是和fastcgi交互的时候,拨号、读写超时设置。

  8. 其他reverse_proxy的子指令都支持,可以根据需要使用,一般情况下,不会用到的。

如果你去读Caddy php_fastcgi的源代码,你会发现,php_fastcgi指令其实就是针对reverse_proxy指令的一个包装,更具体一些,是对reverse_proxy的子指令transport的定制,这种包装,让我们搭建一个PHP服务器会更简洁方便。

实战示例

假设你有一个已经安装好的pgp-fpm,在9000端口监听;你有一个WordPress的博客,放在?/var/www?目录下,那么你可以这么配置Caddy,让你可以快速搭建一个WordPress网站。

https://example.com?{
??root?*?/var/www
??php_fastcgi?localhost:9000?{
?????#?some?php_fastcgi-specific?subdirectives
?????split?.php
?????index?index.php
??}
??file_server
}

就这么简单,是不是比Nginx还容易。这里的?file_server?是为了启用静态文件服务,不然无法加载js、css这些文件。
如果你使用php-fpm socket的方式,只需要改变第一行即可:

php_fastcgi?unix//run/php/php7.4-fpm.sock

小结

随着我们深入的学习Caddy,相信你可以感受到它的魅力,它会更我们的配置操作更简洁,方便,比如这篇文章几行配置代码就可以实现一个PHP服务器。

现在,如果你想搭建一个WordPress博客的话,不妨用Caddy试试。

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站 https://www.flysnow.org/?,第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。

——? 精彩推荐??——

Caddy实战(九)| 设置头信息实现跨域

Caddy实战(八)| 利用缓冲提升反向代理的性能

Caddy实战(七)| 反向代理中的健康检查

Caddy实战(六)| 反向代理中的负载均衡

Caddy实战(五)| 配置反向代理

Caddy实战(四)| 使用API管理Caddy

Caddy实战(三)| Caddyfile 快速入门

Caddy实战(二)| Caddy命令行参数最全教程

Caddy实战(一)| 托管你的网站,只需一行命令

扫码关注

分享、点赞、在看就是最大的支持

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:41:35  更:2021-09-01 11:43:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:07:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码