本章只看一个刚下载的nginx是如何支持php的

--

  location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

主要学习这里的配置问题

--

首先看一下location块,这是一个正则匹配,说明了所有以 .php 结尾的部分都会在这里解析,我们也是主要讲解这个模块是如何和php通信的。

--

fastcgi_pass  匹配端口,这个也就是告诉发送到那个端口处理 php

--

fasecgi_param  这里更多的是对于参数的一些详细配置

看一下nginx 下的 fasecgi_param 参数

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径
fastcgi_param QUERY_STRING $query_string; #请求的参数;如?app=123
fastcgi_param REQUEST_METHOD $request_method; #请求的动作(GET,POST)
fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-Type字段
fastcgi_param CONTENT_LENGTH $content_length; #请求头中的Content-length字段。 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #脚本名称
fastcgi_param REQUEST_URI $request_uri; #请求的地址不带参数
fastcgi_param DOCUMENT_URI $document_uri; #与$uri相同。
fastcgi_param DOCUMENT_ROOT $document_root; #网站的根目录。在server配置中root指令中指定的值
fastcgi_param SERVER_PROTOCOL $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。 fastcgi_param GATEWAY_INTERFACE CGI/1.1;#cgi 版本
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;#nginx 版本号,可修改、隐藏 fastcgi_param REMOTE_ADDR $remote_addr; #客户端IP
fastcgi_param REMOTE_PORT $remote_port; #客户端端口
fastcgi_param SERVER_ADDR $server_addr; #服务器IP地址
fastcgi_param SERVER_PORT $server_port; #服务器端口
fastcgi_param SERVER_NAME $server_name; #服务器名,域名在server配置中指定的server_name #fastcgi_param PATH_INFO $path_info;#可自定义变量 # PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param REDIRECT_STATUS 200; 在php可打印出上面的服务环境变量
如:echo $_SERVER['REMOTE_ADDR']

--

这里的所有信息都可以通过$_server传过来,同时你也可以再nginx中配置你自己的SERVER

例如:

fastcgi_param DEMO_ENV demo;

这时你就可以在$_SERVER中找到 DEMO_NEV 这个变量了。

--

这也就解释了为什么我们要在nginx和php中配置

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

这句话要干什么了。

最新文章

  1. WebApi防重复提交方案
  2. configparser配置文件操作
  3. webpack中output配置项中chunkFilename属性的用法
  4. 能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。
  5. Fiddler界面详解
  6. XMPP协议、IM、客户端互联详解
  7. 使用atomic一定是线程安全的吗
  8. 后端推送给app等发生错误如何处理
  9. OJ技巧
  10. json输出用法+jquery validate
  11. RabbitMQ安装后启动出错:- unable to connect to epmd on blockstorage: timeout (timed out)
  12. Servlet学习第一天--Servlet开发映射URL配置
  13. 解决android加载图片时内存溢出问题
  14. linux下面安装软件学习流程
  15. HDU 4740 模拟题意
  16. MyEclipse2014拷贝web工程
  17. 设计模式之建造者模式Builder(创建型)
  18. html加载时事件触发顺序
  19. python3.4 + Django1.7.7 表单的一些问题
  20. docker内安装php缺少的扩展mysql.so和mysqli.so

热门文章

  1. Four Ways to Create a Thread
  2. JavaWeb学习总结(十五)Jsp中提交的表单的get和post的两种方式
  3. pyinstaller 将.py生成.exe ----报错 “IndexError: tuple index out of range”
  4. java里面的getAttribute和findAttribute的区别
  5. iOS提交审核:您的 App 正在使用广告标识符 (IDFA)
  6. MD5加密与base64编码
  7. iOS - UITextView在调用textViewDidChange方法,九宫格相关中文输入的问题
  8. C# GIF图片的分解以及合成
  9. [转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
  10. 【IE兼容问题】记一次Manifest因为jquery版本不同导致的兼容问题解决方案X-UA-Compatible