zoukankan      html  css  js  c++  java
  • 《Nginx

    本章只看一个刚下载的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;
    

    这句话要干什么了。

  • 相关阅读:
    Java web 会话技术 cookie与session
    Spring bean的bean的三种实例化方式
    Spring基础篇——通过Java注解和XML配置装配bean(转载)
    Spring的核心api和两种实例化方式
    Spring 7种事务传播类型
    leetcode 697
    leetcode 387
    Spring_002 依赖注入方式实现
    Spring_第一个Spring入门案例IOC
    谈谈对Spring IOC的理解(转载)
  • 原文地址:https://www.cnblogs.com/25-lH/p/8651888.html
Copyright © 2011-2022 走看看