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,一般只用于内部重定向请求。

相关推荐:
在Linux系统上架设ASP.NET网站项目已经在圈子中流行,而“Mono+Jexus”架构模式是Linux承载ASP.NET企业级应用的极为重要的架构方式。 这种架构中,Jexus很好安装、配置,基本上就是一个下载、解压、复制的过 …
一种新的勒索软件正在德国扩散。被称为 GermanWiper 的勒索软件通过电子邮件传播,感染之后它不是加密文件而是用随机字符覆写文件永久性的破坏用户数据。 但在破坏数据之后它还会索要赎金。但支付赎金并不 …
在.Net下读取oracle表时报这个错,但是怎么解决呢? 首先我们看下缘由, 之前操作的oracle表数据中的Guid是用oracle自带的SYS_GUID()这个函数生成的,这种Guid值在.Net下获取会报"GUID 的字节数组长度必须 …
在本周二释出的例行更新中,微软修补了三个正被利用执行恶意代码或提权的 0day 漏洞。 其中两个 CVE-2020-1020 和 CVE-2020-0938 存在于 Adobe Type Manager Library 中,在非 Windows 10 系统中,成功利用 …
微软.NET4.6主要提供了全新的64位 RyuJIT及时编译引擎,对WPF, Windows Forms程序高对比度的支持,这将大幅提升了.NET应用的运行速度。 硬件环境配置要求:— 1GHz或更快的处理器— 512MB RAM— 850MB的可用硬 …
手机扫一扫即可带走我!