Nginx Server配置中if的用法


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

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤 使用ngx_log_if不记录特定日志

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址

相关内容