nginx中http.server.location指令语法

location是nginx配置文件中http块下server块下的一个指令,语法结构为:

location  [ = | ~ | ~* | ^~ ]  uri  { ... }

[]内部的部分为可选项,四种标识只能选其一,用于指定请求字符串和uri的匹配方式。

如果不加可选部分,nginx先按顺序将请求路径匹配所有带标准uri的location,再匹配带正则uri的location,如果有正则uri匹配成功则使用该location,如果没有正则uri匹配成功,则使用标准uri中匹配度最高的一个location。

"=",严格匹配模式,用于标准uri前,要求请求字符串与标准uri严格匹配,如果成功,立即处理;

"^~",忽略正则uri模式,用于标准uri前,若请求字符串和标准uri匹配度最高,立即处理;

"~",表示uri包含正则表达式,区分大小写;

"~*",表示uri包含正则表达式,不区分大小写。

内容参考自《Nginx高性能Web服务器详解》和《Nginx官方文档》。

时间: 2024-08-06 03:45:40

nginx中http.server.location指令语法的相关文章

详细解析 nginx uri 如何匹配 location 规则

location 是 nginx 配置中出现最频繁的配置项,一个 uri 是如何与多个 location 进行匹配的? 在有多个 location 都匹配的情况下,如何决定使用哪一个 location 作为匹配结果? 清晰内部机制之后,疑问自然迎刃而解. location 规则类型 根据官方文档,location 配置语法如下 Syntax: location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... } Default: - Co

Nginx rewrite 中break与last指令的区别

PS:原创文章,如需转载,请注明出处,谢谢! 本文地址:http://flyer0126.iteye.com/blog/2257670 nginx rewrite指令语法:rewrite regex replacement [flag];默认值:无作用域:server,location,if如果一个URI匹配指定的正则表达式regex,URI就按照replacement重写.rewrite按配置文件中出现的顺序执行.flags标志可以停止/继续处理.如果replacement以"http://&

nginx中的try_files指令解释

try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite. try_files 语法: try_files file ... uri    或  try_files  file ... = code 默认值: 无 作用域: server location Checks for the existence of files in order, and returns the first file that is found.

Nginx中location配置[转]

关于一些对location认识的误区 1. location 的匹配顺序是“先匹配正则,再匹配普通”. 矫正: location 的匹配顺序其实是“先匹配普通,再匹配正则”.我这么说,大家一定会反驳我,因为按“先匹配普通,再匹配正则”解释不了大家平时习惯的按“先匹配正则,再匹配普通”的实践经验.这里我只能暂时解释下,造成这种误解的原因是:正则匹配会覆盖普通匹配(实际的规则,比这复杂,后面会详细解释). 2. location 的执行逻辑跟 location 的编辑顺序无关. 矫正:这句话不全对,

nginx中location中关于proxy_pass和rewrite的应用

1,问题描述 upstream datacollectbackend{ #ip_hash; server 10.234.1.211:6100 max_fails=5 fail_timeout=30s; server 10.234.1.26:7100 max_fails=5 fail_timeout=30s; } location ~* ^/OCC_DATACO_WEB/.*$ { include deny.conf; proxy_pass http://datacollectbackend; i

Nginx Location指令配置及常用全局变量

在实践安装nginx的时候,不知道./configure是什么意思,这里特地记录一下. 在linux中./代表当前目录,属于相对路径../代表上一级目录,属于相对路径/代表根目录,/开头的文件都是绝对路径./configure的意思是执行当前目录下面的configure文件configure一般都有可执行的权限,如果没有的话,用./configure是不能执行的,但是可以这样执行:sh ./configure 使用--prefix参数指定nginx安装的目录 不指定prefix,则可执行文件默认

nginx中server块的匹配顺序

客户端发出一个http请求时,nginx收到后会取出header头中的host,与nginx.conf中每个server的server_name进行匹配,以此决定到底由哪一个server块来处理这个请求. server_name与host匹配优先级顺序如下: 能匹配上的情况优先级顺序: 1.完全匹配 2.通配符在前的,如*.xxxx.com 3.在后的,如aaa.bbb.* 4.正则匹配,如~^\.aaaa\.bbb\.com$ 如果都不匹配的情况下,按下面两种方式处理,优先级如下: 1.优先选

在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests: server { listen 80 de

前端开发掌握nginx常用功能之server&location匹配规则

nginx主要是公司运维同学必须掌握的知识,涉及到反向代理.负载均衡等服务器配置.前端开发尤其是纯前端开发来说对nginx接触的并不多,但是在一些情况下,nginx还是需要前端自己来搞:例如我们公司的开发环境和测试环境,虽然qa可以帮助搞定配置,但是每新增一个前端模块或者模块nginx配置经常变更都求着qa搞,麻烦别人还不如自己来搞,这样更能理解自己的需求.这些都需要前端开发对nginx有所理解,下面我们来说说nginx最基础的server和location匹配规则. 1. server匹配规则