Nginx Server的配置以php为例,如下:
server{
root /var/webproject/www/mytools-php;
index index.html index.php;
5 location ~.+?\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(.*)$;
if (!-f $document_root$fastcgi_script_name){
return 404;
}
if ($fastcgi_script_name != /index.php){
return 404;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /opt/nginx-1.8/conf/fastcgi_php_params;
}
}
nginx中的if无法进行&&、||等逻辑运算,所以我们需要一步一步的进行判断,上面配置首先判断网站根目录下是否存在请求的文件,如果不存在返回404,如果存在接着判断请求的文件是不是index.php,如果不是则返回404。
判断变量和字符串是否相等使用'='或者'!=';
'-f'和'!-f'能够判断判断文件是否存在;
'~'和'!~'是区分大小写的正则判断,'~*'和'!~*'是不区分大小写的正则判断;
'-d'判断目录是否存在;
'-e和'!-e'用来判断文件、目录、符号连接是否存在;
'-x'和'!-x'用来判断可执行文件是否存在;
更多Nginx相关教程见以下内容:
CentOS 6.2实战部署Nginx+MySQL+PHP
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下配置Nginx加载ngx_pagespeed模块