特码的,谷歌又用不了了。

吐槽完毕,正文如下:

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了。

caddy配置php-fpm的更多相关文章

  1. Web服务器和动态语言如何交互--CGI&FastCGI&FPM浅谈

    一个用户的Request是如何经过Web服务器(Apache,Nginx,IIS,Light)与后端的动态语言(如PHP等)进行交互并将结果返回给用户的呢? 本文浅谈个人观点,可能有误,欢迎拍砖,共同 ...

  2. 基于LNMP(fastcgi协议)环境部署、原理介绍以及fastcgi_cache配置以及upstream模块负载均衡讲解

    ngx_http_proxy_module只能反向代理后端使用HTTP协议的主机.而ngx_http_fastcgi_module只能反向代理后端使用FPM或者使用FastCGI协议的客户端. 一.部 ...

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

    最近发现了一个 golang 开发的 HTTP server,叫做 Caddy,它配置起来十分简便,甚至可以 28 秒配置好一个支持 http2 的 server ,而且对各种 http 新特性都支持 ...

  4. PHP 服务 php-fpm 的一些常见配置

    < 操作系统 Centos7,PHP版本7.2.7 > 已下所有配置涉及到时间单位均使用 => 秒(s) 分 (m) 时 (h) 天(d) [ 以下为全局配置 ] 01,关于,进程文 ...

  5. 深入理解PHP之:Nginx 与 FPM 的工作机制

    网络上有很多关于如何配置 Nginx + FPM 的文章,但它们更多从操作的角度出发,告诉我们怎么做,但却没有告诉我们为什么要这么做,本文从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理 ...

  6. PHP配置优化:php-fpm配置解读

    PHP-FPM是一个PHP FastCGI管理器,php-fpm.conf配置文件用于控制PHP-FPM管理进程的相关参数,比如工作子进程的数量.运行权限.监听端口.慢请求等等. 我们在编译安装PHP ...

  7. caddy(四)Run详解

    caddy(四)Run详解 前言 平时我们使用 caddy 都是使用 它的 二进制 分发文件,我们现在来分析 caddy 的 Run 函数.从最外层抽象的看它都做了些什么. Caddy Run 我们来 ...

  8. [视频教程] 灵活配置多版本PHP并存运行

    经常有一些项目需要使用不同版本的PHP运行环境,比如有的老项目需要使用5.3版本,有的新项目比如laravel需要使用7.2以上版本,那么在一台机器上如何多版本PHP并存运行呢 有一种很灵活高效的方式 ...

  9. 落网数据库简单查询接口 caddy+php7+mongodb

    落网数据库简单查询接口 一个简单的DEMO,使用了caddy + php7 + mongodb 数据库&接口设计 来自 https://github.com/Aedron/Luoo.spide ...

随机推荐

  1. TensorFlow报错module 'tensorflow' has no attribute 'xxx'解决办法

    原因:TensorFlow2.0版本修改了许多函数名字 tf.sub()更改为tf.subtract() tf.mul()更改为tf.multiply() tf.types.float32更改为tf. ...

  2. java.lang.NoSuchMethodException: java.util.List.<init>()

    报错信息如下 java.lang.NoSuchMethodException: java.util.List.<init>() at java.lang.Class.getConstruc ...

  3. C++ 简单信息的表示和基本运算

    一.算术运算和自增自减运算 二.关系运算 三.逻辑运算 四.位运算 五.特殊运算符 六.混合运算中的类型转换

  4. java web利用mvc结构实现简单聊天室功能

    简单聊天室采用各种内部对象不适用数据库实现. 一个聊天室要实现的基本功能是:         1.用户登录进入聊天室, 2.用户发言 3.用户可以看见别人发言 刚才算是简单的需求分析了,现在就应该是进 ...

  5. Linux学习第10天-命令执行顺序控制与管道

    学习重点: cut,grep,wc,sort命令的使用 管道的理解 一.顺序执行多条命令 当我们需要使用apt-get安装一个软件,然后安装完成后立即运行安装的软件(或命令工具),又恰巧你的主机才更换 ...

  6. Python 参数使用总结

    Python 中参数的传递非常灵活,不太容易记住理解,特整理如下备忘: 普通参数 即按照函数所需的参数,对应位置传递对应的值,可以对应 Java 中的普通参数 def max(a, b): if a ...

  7. HDU1398:Square Coins(DP水题)

    Square Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  8. 如何连接到Oracle数据库?

    如何连接到Oracle数据库?   使用SQL * Plus连接Oracle数据库服务器 SQL * Plus是交互式查询工具,我们在安装Oracle数据库服务器或客户端时会自动安装.SQL * Pl ...

  9. Ubuntu16.04默认Python3.5升级Python3.6踩坑

    好久没更新博客了,每天还是踩坑中.今天遇到第一个问题“ImportError: No module named 'secrets'”,导包是常见问题.这次的问题导致我又重装了一次环境,不过这是一个新服 ...

  10. 为什么条件变量需要传入mutex?

    条件变量一般而言,会有一个布尔表达式作为唤醒的条件.调用wait的线程需要读取这个布尔表达式内数据, 同样,调用signal的线程需要修改这个布尔表达式的数据,让表达式为真.故而这两个线程必然访问至少 ...