nginx中的try_files指令和location指令

Nginx的配置语法灵活,可控制度非常高,是目前主流的服务器应用之一。

在0.7以后的版本中加入了一个try_files指令,配合命名location,可以部分替代原本常用的rewrite配置方式,提高解析效率。

举个例子:

server {
listen 80;
server_name www.yoursafe.cn;
root /www;
index index.html;
try_files $uri @test;
location @test{
proxy_pass http://127.0.0.1;
}
}

try_files指令:

语法:try_files file … uri 或 try_files file … = code
默认值:无
作用域:server|location

其作用是按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。

需要注意的是,只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。命名的location也可以使用在最后一个参数中。与rewrite指令不同,如果回退URI不是命名的location那么$args不会自动保留,如果你想保留$args,则必须明确声明。

location指令:

语法:location [=|~|~*|^~|@] /uri/ { … }
默认值:无
作用域:server

location指令是用来为匹配的URI进行配置,URI即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。 [@] 即是命名location,一般只用于内部重定向请求。

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 可能很多人在MySQL 8.0中修改密码时遇到了很多问题,比如重置密码,还是用的旧的命令去修改密码,导致报错,因为 MySQL 5.7.6 以后废弃了 user 表中的 password 字段和 password() 方法,所以使用旧的方法去重置密码对 mysql 8.0 是不行的。 首先我们先看几...
  • 首先解释一下分配单元大小的含义:所谓分配单元大小,即是系统对磁盘以及移动存储设备进行读写的最小单位。 在极限速度以内,分配单元大小设置越大读写速度越快,反之则越慢。但是这里要注意一个问题,单元分配越大越会造成空间的浪费,这就好比你拿许多同样大小的正方形纸片要将一个形状完全覆盖,纸片的面积越大越省事,...
  • LSP协议LSP协议 LSP全称Layered Service Provider 文名层服务提供程序 LSPTCP/IP协议等接口,LSP用途是方便程序员编写监视系统网络通讯情况,如Sniffer。注:现在很多LSP都用于浏览器劫持。 Winsock LSP(Layered Service Prov...
  • 函数如下 System.Guid.NewGuid().ToString(format) 格式符 返回值的格式 N 32位纯字符: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,如:e92b8e30a6e541f6a6b9188230a23dd2 D 由连字符分隔的32位数字: x...
  • 在没有接互联网的 Win7/2008 R2 系统上安装微软.NET框架时,安装过程会报错“无法建立到信任根颁发机构的证书链”。 这个错误是因为微软.NET框架的数字签名所对应的根证书没有安装。微软现在自己的软件安装时都要强制检查数字签名的,数字签名验不过组件是装不上的。 在 WinXP 时代,根证书...
微信扫一扫即可带走我!