• Nginx支持php相关配置 枯木


             Nginx本身是不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux 下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个 wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI 接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据 通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端。

    Nginx+FastCGI运行原理

    修改主配置文件,如下:

    # vim/usr/local/nginx/conf/nginx.conf

      location / {

               root   /www;

               index  index.html index.htm index.php;

            }

           location ~ \.php$ {

                root           /www;

                fastcgi_pass   127.0.0.1:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  /www$fastcgi_script_name;

                include        fastcgi_params;

            }

    //注:黑体wwwweb根目录,改成对应目录即可

    location 定义文件类型, \.php$ 代表所有以 php 作为文件后缀的文件类型.
    root 定义 php 文件存放的路径, 当前以 "/www" 作为默认存放位置.
    fastcgi_index 定义 php 文件类型中的默认索引页
    fastcgi_param SCRIPT_FILENAME 定义了页面请求参数, 如客户端需要访问 /t1.php 则会自动读取 /www/t1.php文件, 如客户端访问 / 则自动读取 /www/index.php 文件
    include 定义fastcgi 配置信息将会被保存到 /usr/local/nginx/conf/fastcgi_params 文件中

    nginx最常用的方法是利用 tcp/ip 协议连接 phpfastcgi 接口, 因此要连接php必须先启动fastcgi程序.

    启动方法:

    # /usr/local/bin/php-cgi-b 127.0.0.1:9000 -c /usr/local/lib/php.ini &

    -b 用于指定监听地址与端口

    如果想指定配置文件位置,可以使用-c选项

    注 意, nginx 服务器负责所有的客户端请求, 包括了静态网页解析 (html), 页面中的其他对象如 ccs文件jpg png文件等传输, 但遇到客户需要请求 php 页面请求或 php 源码解析时, nginx将会把页面传递到fastcgi接口, 由 php-cgi 程序进行解析.

    浏览器测试:http://IP/index.php

            当前php-cgi只启用一个进程应答nginx所有连接中的php请求, 假如nginx具有一定的并发连接,那么php-cgi 将会变得无法同时应付大量的工作, 并且返回网页临时不可用信息. 将会导致所有php连接无法返回数据结果,并返回错误信息。

            为有效地解决php-cgi接口无法应答大量并发连接请求, 我们可以利用 spawn-fcgi或者php-fpm,稍后送上。

    参考:terry《性能调优和安全》一书

                南非蚂蚁《高性能Linux服务器构建实战》Nginx章节

  • 相关阅读:
    DL_WITH_PY系统学习(第2章)
    JavaScript学习require的用法
    Vue的prop属性
    vue store action与Mutation与getters的具体用法
    OpenEBS 实现 Local PV 动态持久化存储
    vue modules 使用
    【转载】 tSNE是什么? —— 使用指南
    【转载】 Do's and Don'ts of using tSNE to Understand Vision Models —— tSNE 作者写的使用指南(PPT版本)
    【转载】 机器学习数据可视化 (tSNE 使用指南)—— Why You Are Using tSNE Wrong
    【转载】 机器学习的高维数据可视化技术(tSNE 介绍) 外文博客原文:How tSNE works and Dimensionality Reduction
  • 原文地址:https://www.cnblogs.com/kumulinux/p/2810059.html
Copyright © 2020-2023  润新知