nginx的相关配置记录和总结

前言

  本文旨在对nginx的各项配置文件和参数做一个记录和总结。

  原因是在配置框架和虚拟目录,web语言解析的nginx环境的时候遇到各种问题和参数,有时百度可以解决,有时直接复制粘贴,大都当时有些记忆,过后又浑然不知。本人又记性极差。所以,统一做个笔记,也相当于备忘吧。

  本文会不断更新扩充,想到哪里或者正在遇到的问题,会记录下来。

正文

  1)php常规配置。

1    location ~ .php$ {
2          fastcgi_pass 127.0.0.1:9000;
3          fastcgi_index index.php;
4          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
5          include fastcgi_params;
6    }

        这是使用php的常规配置文件。

    location  是对uri进行匹配,然后转发。这里理解为url就好,但不会匹配url中?和后面的内容,因为后面的内容不影响该资源的唯一性。

    ~ 开头表示区分大小写的正则匹配

    .php$  表示以.php结尾的资源

    fastcgi_pass  fasgcgi其实就是nginx一个模块啊,模块的这个参数是设置FastCgi服务器的地址,这个地址可以是一个域名或者ip地址,然后再加上端口号·。9000无疑就是php-fpm进程的端口号了。

    fastcgi_index  设置默认访问文件。

              fastcgi_param  这个就是设置fastcgi的一些参数,SCRIPT_FILENAME 参数 在php中使用,用来设定脚本的文件的绝对路径。文件名是什么呢?$document_root由前面的nginx配置的root参数决定,是nginx网站根目录的绝对路径,$fastcgi_script_name为文件在网站中的相对路径。比如地址是:http://127.0.0.1/thinkphp/public/index.php,那么$fastcgi_script_name就是thinkphp/public/index.php。

2)thinkphp5的配置

 1 #surport thinkphp5      
 2 #首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。
 3       location ~ .php(.*)$ {
 4          fastcgi_pass 127.0.0.1:9000;
 5          fastcgi_index index.php;
 6          fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
 7          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 8         fastcgi_param  PATH_INFO  $fastcgi_path_info;
 9          fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
10          include fastcgi_params;
11         }   
12 
13         location  /thinkphp/public/ {
14     
15           if (!-e $request_filename) {
16             rewrite  ^/thinkphp/public/(.*)$  /thinkphp/public/index.php?s=/$1  last;
17             break;
18           }   
19         }  
View Code

  

  首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。

    

原文地址:https://www.cnblogs.com/Andres/p/9028992.html