特码的,谷歌又用不了了。
吐槽完毕,正文如下:
caddy是一个用go语言开发的服务器,可用作web端。
caddy本身支持 -conf caddyfile的配置
在命令行中的体现: caddy -conf caddyfile
caddy是自定义的命令别名,-conf参数代表是对命令行中配置文件的读取,caddyfile就是配置文件。
其中caddyfile是文件名,这个名字的定义,自己就随意了。
fastcgi path endpoint [preset] {
root directory
ext extension
split splitval
index indexfile
env key value
except ignored_paths...
pool pool_size
upstream endpoint
connect_timeout duration
read_timeout duration
send_timeout duration
}
- 路径(path)是在请求转发之前匹配的基本路径。
- 端点(endpoint)是FastCGI服务器的地址或Unix套接字。
- 预设(preset)是可选的预设名称(见下文)。使用预设时,不需要重复预设的各个设置。
- root指定FastCGI服务器使用的根目录,如果与虚拟主机的根目录不同。如果FastCGI服务器位于不同的服务器,chroot-jailed和/或containerized上,这是有用的。
- ext指定扩展名,如果请求URL具有该扩展名,则会将请求代理到FastCGI。
- split指定如何拆分URL; 分割值成为第一部分的结尾,并且URL中的任何内容成为PATH_INFO CGI变量的一部分。
- index指定文件未由URL指定时要尝试的默认文件。
- env设置一个带有给定值的名为key的环境变量; 在 ENV属性可多次使用和值可以使用请求的占位符。
- except是fastcgi处理以外的空格分隔的请求路径的列表,即使它与基本路径匹配。
- pool是要重用的持久连接的数量(可以在Windows上的性能很好); 默认值为0。
- upstream指定要使用的附加后端。将执行基本负载平衡。这可以多次指定。
- connect_timeout是连接到后端的时间。必须是持续时间值(例如“10s”)。
- read_timeout是从后端读取响应的时间。必须是持续时间值。
- send_timeout是允许向后端发送请求的时间。必须是持续时间值。
其中关于端点, endpoint这个东西的配置,官网上的示例为:
fastcgi / 127.0.0.1:9001 {
}
其中的127.0.0.1:9001这个就是endpoint中说的 FastCGI服务器的地址 同时,它只是第一种方法,或:后面还有 Unix套接字, 我使用的是ubuntu,其次环境搭建的是lnmp,我有现成的php-fpm,在php的文件:php/etc/php-fpm.conf(这只是个在php5.4.45中,具体得看自己的机器),监听的是socket文件为:php-cgi.sock,也就是unix的套接字。
但是网上的配置文件多为安装好php后复制一份,然后进行配置,该工程坚挺服务器地址。。。话说我只是研究go语言和服务器啊喂,这个搞那么复杂感冒啊喂。
所以将上面的例子改动成
fastcgi / /youPath/php-cgi.sock php {
}
就可以了,服务器就可以解析php了。