支持phpfastcgi的配置如下:

server {

listen       8000;

server_name  localhost;

root F:/home/projects/test;

index        index.php;

location / {

index  index.php; ##可以有多个,空格隔开

}

location ~ \.php$ {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

include        fastcgi_params;

}

}

解释说明:

1、location ~ \.php$ 匹配到php文件就进行fastcgi操作

2、fastcgi_pass   127.0.0.1:9000;指明nginx与fastcgi交互的id和端口号,也就是fastcgi监听的端口

3、fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;这里声明了一个fastcgi参数,参数名称为SCRIPT_FILENAME(对,也就是php中$_SERVER['SCRIPT_FILENAME']的值),这个参数表明目标进程要执行哪个php脚本$document_root,$fastcgi_script_name都是nginx的常量,稍后给解释。此处声明的参数会通信给php-cgi,php-cgi会进行一些php的常量超级变量的初始化,例如:$_SERVER['REQUEST_URI'],$_SERVER['SCRIPT_FILENAME'],$_SERVER['QUERY_STRING']……。

4、include        fastcgi_params;这里是包含所有nginx常量,传递给php-cgi。

当然这里可以—》

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

fastcgi_param  REQUEST_URI $request_uri;

fastcgi_param  QUERY_STRING $query_string;

......

部分nginx常量解释,以http://127.0.0.1:8000/?test=123&test2=abc为例子:

$args    #这个变量等于请求行中(GET请求)的参数,test=123&test2=abc;

$content_length #请求头中的Content-length字段;

$content_type  #请求头中的Content-Type字段;

$document_root #当前请求在root指令中指定的值,文件的物理root路径,F:/home/projects/test;

$document_uri  #同$uri;

$uri    #不带请求参数的当前URI,$uri不包含主机名,本例为"/"。该值有可能和$request_uri 不一致。$request_uri是浏览器发过来的值,该值不会被改变。该值有可能是rewrite后的值。例如做了internal redirects后。好多框架、伪静态都用到rewrite。$_SERVER['REQUEST_URI']往往是一些框架初始化关键,$request_uri的不可变性保证了这一点。

$host  #请求主机头字段,否则为服务器名称。127.0.0.1

$query_string  #同$args;

$request_method #GET或POST;

$remote_addr    #客户端的IP地址;

$remote_port    #客户端的端口;

$server_addr    #服务器地址 127.0.0.1

$server_name    #服务器名称,localhost;

$server_port    #8000;

$request_filename #当前请求的物理文件的名称,本例为F:/home/projects/test/index.php。此值可以因重定向改变。

$request_uri     #包含请求参数的原始URI,不包含主机名,由客户端请求决定,不能修改。”/?test=123&test2=abc”。

.........

nginx配置:支持phpfastcgi,nginx和php-cgi通信,部分nginx常量解释的更多相关文章

  1. Apache和Nginx配置支持苹果ATS方法

    什么是ATS功能? ATS是iOS9和OS X El Capitan的一个新特性.开启该功能后,ATS对使用NSURLConnection, CFURL或NSURLSession 等APIs 进行的网 ...

  2. Nginx 配置支持C++

    1.在auto/make脚本里添加新的编译器和链接器: #LINK = $LINK                         #原25行附近注释掉原链接器CXX=g++             ...

  3. Nginx 配置指令location 匹配符优先级和安全问题【转】

    Nginx配置指令location匹配符优先级和安全问题 使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可.特别是它的配置,有点像写程序一样,每行命令结尾一个";&q ...

  4. 安装nginx+ngx_lua支持WAF防护功能

    安装nginx+ngx_lua支持WAF防护功能 nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以 ...

  5. (转)不停止Nginx服务的情况下平滑变更Nginx配置

    在不停止Nginx服务的情况下平滑变更Nginx配置 1.修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确: /u ...

  6. nginx配置pathinfo支持,最佳方案 - chunyu

    〇. 前言 pathinfo有两个,1 pathinfo()函数,2 $_SERVER['PATH_INFO'].pathinfo()是php的库函数,原生支持不需要nginx配置,$_SERVER[ ...

  7. StartCom 申请 SSL 证书及 Nginx HTTPS 支持配置全攻略

    来源:https://www.williamyao.com/index.php/archives/1397/ 前言 最近收到 StartCom 的邮件,数字证书即将过期,想到去年在 StartSSL ...

  8. nginx使用ssl模块配置支持HTTPS访问

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过htt ...

  9. Mac直播服务器Nginx配置对HLS的支持

    在上一篇中Mac上搭建直播服务器Nginx+rtmp,我们已经搭建了nginx+rtmp直播服务器.下面需要对Nginx服务器增加对HLS的支持.在Nginx增加对HLS种支持比较简单,只是简单的修改 ...

随机推荐

  1. linux下查看和添加PATH环境变量

    linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PA ...

  2. ARC指南3 - @property

      本章介绍引入ARC后@property的使用,跟ARC之前的还是很不一样的 一..h和.m文件的变化说明 1.对于.h头文件,主要是将属性定义由retain变为strong @property ( ...

  3. spring的自动装配(default-autowire="byName")

    自动装配,官方给出的定义是这样:Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系.因此,如果可能的话,可以自 动让Spring通过检查BeanFactory中的内 ...

  4. NIO基础

    通道和缓冲区 概述 通道 和 缓冲区 是 NIO 中的核心对象,几乎在每一个 I/O 操作中都要使用它们. 通道是对原 I/O 包中的流的模拟.到任何目的地(或来自任何地方)的所有数据都必须通过一个 ...

  5. JAVA:借用OpenOffice将上传的Word文档转换成Html格式

    为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ...

  6. php验证是否是md5编码的代码

    php验证是否是md5编码的示例. 代码很简单,使用了正则表达式. function is_md5($password) {     return preg_match("/^[a-z0-9 ...

  7. React属性的3种设置方式

    一. 不推荐用setProps,因为以React的设计思想相悖,推荐以父组件向子组件传递属性的方式 二.3种用法的代码 1.键值对 <!DOCTYPE html> <html lan ...

  8. js的预解析和代码执行相关规则

    JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个就是执行阶段. 1.编译阶段:又称为预解析阶段,在这个阶段JavaScript解释器将完成把JavaScript脚本代码转换到字节码. ...

  9. Python面向对象3

    一.内部类 内部类就是在类的内部定义的类,主要目的是为了更好的抽象现实世界. 二.魔术方法(构造函数和析构函数) #!usr/bin/python #coding:utf8 class Milo(): ...

  10. contentType,pageEncoding,charset,setCharacterEncoding

    contentType,pageEncoding,charset,setCharacterEncoding HTML中的meta标签,以及HTTP Header. -------------字符集.字 ...