nginx的相关配置记录和总结

前言

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

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

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

正文

  1)php常规配置。

    location ~ \.php$ {
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

        这是使用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的配置

 #surport thinkphp5
#首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
} location /thinkphp/public/ { if (!-e $request_filename) {
rewrite ^/thinkphp/public/(.*)$ /thinkphp/public/index.php?s=/$ last;
break;
}
}

  

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

    

上一篇:SQL Server 中的一些概念


下一篇:算法图解学习笔记01:二分查找&大O表示法