NGINX server配置中if的用法
2016-03-11 22:55
369 查看
server的配置以php为例,如下:
1 server{ 2 root /var/webproject/www/mytools-php; 3 index index.html index.php; 4 5 location ~.+?\.php(/|$) { 6 fastcgi_split_path_info ^(.+?\.php)(.*)$; 7 if (!-f $document_root$fastcgi_script_name){ 8 return 404; 9 } 10 if ($fastcgi_script_name != /index.php){ 11 return 404; 12 } 13 fastcgi_pass 127.0.0.1:9000; 14 fastcgi_index index.php; 15 include /opt/nginx-1.8/conf/fastcgi_php_params; 16 } 17 }
nginx中的if无法进行&&、||等逻辑运算,所以我们需要一步一步的进行判断,上面配置首先判断网站根目录下是否存在请求的文件,如果不存在返回404,如果存在接着判断请求的文件是不是index.php,如果不是则返回404。
判断变量和字符串是否相等使用'='或者'!=';
'-f'和'!-f'能够判断判断文件是否存在;
'~'和'!~'是区分大小写的正则判断,'~*'和'!~*'是不区分大小写的正则判断;
'-d'判断目录是否存在;
'-e和'!-e'用来判断文件、目录、符号连接是否存在;
'-x'和'!-x'用来判断可执行文件是否存在;
相关文章推荐
- NGINX做前端,页面上的连接却变成后端地址
- nginx 域名映射
- django在nginx uwsgi和tornado异步方案在项目中的体验
- Nginx安装到使用__me
- 用GoAccess分析Nginx的日志
- ubunto nginx 本地域名劫持与虚拟机配置
- CentOS 7虚拟机下模拟实现nginx负载均衡
- nginx+php+mysql+centos
- nginx 配置
- goaccess分析nginx日志常见问题
- nginx源码初读(12)--跟main一起看流程(Block 1: 初始化基础模块 Block 2:获取参数)
- nginx概念理解
- CentOS7.0安装Nginx 1.7.4
- 基于CentOS6.5环境之下的LNMP之编译安装Nginx1.8.0 stable(稳定版)
- laravel 在nginx配置
- Nginx出现413 Request Entity Too Large错误解决方法
- 统计Apache或nginx日志里访问次数最多的IP
- 每秒处理3百万请求的Web集群搭建-为最佳性能调优 Nginx
- nginx配置
- Nginx配置文件nginx.conf (Apache)