Nginx-13 Location 指令介绍

************ 如有侵权请提示删除 ***************

location:用来设定不同URI 的文件系统的路径映射,一个server中可以设置多个location,Nginx会根据用户请求的URI 地址来逐个判断location, 找出最佳匹配规则,然后应用该location中定义的配置。

语法规则: location [=||*|^~] /uri/ { … }

  • = 开头表示精确匹配

  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头

  • ~ 开头表示区分大小写的正则匹配 以xx结尾

  • ~* 开头表示不区分大小写的正则匹配 以xx结尾

  • !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则

  • / 通用匹配,任何请求都会匹配到。

多个location配置的情况下匹配顺序为
首先精确匹配 =-》其次以xx开头匹配^~-》然后是按文件中顺序的正则匹配-》最后是交给 / 通用匹配。

当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

location = / {#规则A
}
location = /login {#规则B
}
location ^~ /static/ {#规则C
}
location ~ \.(gif|jpg|png|js|css)$ {#规则D,注意:是根据括号内的大小写进行匹配。括号内全是小写,只匹配小写
}
location ~* \.png$ {#规则E
}
location !~ \.xhtml$ {#规则F
}
location !~* \.xhtml$ {#规则G
}
location / {#规则H
}

那么产生的效果如下:

  • 访问根目录/, 比如http://localhost/ 将匹配规则A

  • 访问 http://localhost/login 将匹配规则B,http://localhost/register 则匹配规则H

  • 访问 http://localhost/static/a.html 将匹配规则C

  • 访问 http://localhost/a.gif, http://localhost/b.jpg 将匹配规则D和规则E,但是规则D顺序优先,规则E不起作用, 而 http://localhost/static/c.png 则优先匹配到 规则C

  • 访问 http://localhost/a.PNG 则匹配规则E, 而不会匹配规则D,因为规则E不区分大小写。

  • 访问 http://localhost/a.xhtml 不会匹配规则F和规则G,

http://localhost/a.XHTML不会匹配规则G,(因为!)。规则F,规则G属于排除法,符合匹配规则也不会匹配到,所以想想看实际应用中哪里会用到。

  • 访问 http://localhost/category/id/1111 则最终匹配到规则H,因为以上规则都不匹配,这个时候nginx转发请求给后端应用服务器,比如FastCGI(php),tomcat(jsp),nginx作为方向代理服务器存在。

所以实际使用中,个人觉得至少有三个匹配规则定义,如下:

#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。
#这里是直接转发给后端应用服务器了,也可以是一个静态首页
# 第一个必选规则
location = / {proxy_pass http://tomcat:8080/index
}# 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项
# 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
location ^~ /static/ {                              //以xx开头root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {     //以xx结尾root /webroot/res/;
}#第三个规则就是通用规则,用来转发动态请求到后端应用服务器
#非静态文件请求就默认是动态请求,自己根据实际把握
location / {proxy_pass http://tomcat:8080/
}

参考:nginx之location配置_hellochenlian的专栏-CSDN博客

Location 指令介绍相关推荐

  1. nginx中的location指令

    1.location 介绍 location是Nginx中的块级指令(block directive),location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理 ...

  2. Nginx中server_name指令介绍

    Nginx中server_name指令介绍 用途 根据官方文档说明,用来设置虚拟服务器,对于用IP还是请求头部中的Host字段内容设置这个指令的值,没有明确的分别. 用法 指令后跟特定域名,此时第一个 ...

  3. vue使用,及指令介绍,计算属性/过滤器

    目录 Vue是什么 vue的单页面原理 Vue的使用 指令介绍: v-if和 v-show的区别 v-on 事件绑定: v-bind 绑定属性 处理数组绑定 v-model双向数据绑定 created ...

  4. C#中的预编译指令介绍

    原文:C#中的预编译指令介绍 1.#define和#undef 用法: #define DEBUG #undef DEBUG #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量 ...

  5. Vue.js-Day01-AM【第一次学习-安装、基础使用(引入方式)、数据展示、指令介绍(v-html、v-text、v-bind、v-if、v-for】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 目   录 1.讲在前面 课程内容 实训课内容 2.Vue.js介绍 2.1.安装 开发环境 版本介绍 2.2.基础使用 ...

  6. 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...

    浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...

  7. Nginx的location指令

    location指令 server{listen 80;server_name localhost;location / {}location /abc{}... } location:用来设置请求的 ...

  8. [Nginx]location 指令说明

    location 指令说明 该指令用于匹配 URL. 语法如下: 1.= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求. ...

  9. 我的世界服务器怎么显示腐竹来了,我的世界服务器主人可用指令一览 我的世界腐竹常用指令介绍_游侠手游...

    我的世界服务器主人可用指令一览,我的世界腐竹指令介绍.作为我的世界中一个服务器的主人,你可以掌控这个服务器的天时地利,具体做法自然就是使用指令了.接下来小编就给大家带来服主的常用指令介绍,大家一起来看 ...

最新文章

  1. Mongodb最佳实践及使用问题
  2. IO 模拟 1/2 Bias、1/4 Duty的 LCD 驱动
  3. lambda 表达式中的 this 与普通情况下的 this 指向
  4. 在驱动和应用程序间共享内存
  5. Go unsafe Pointer
  6. 虚拟内存管理习题补充
  7. python调用jar 性能_亲自有效---python 调用jar
  8. 【医院HIS系统专题】医院HIS系统应用案例及解决方案汇总贴
  9. wince6.0添加组件_WINCE6.0添加对viewrs(PDF,Word,Execel和PowerPoint)支持
  10. Linux部署东方通TongWeb7
  11. java同步synchronized
  12. matlab生成的图片有边,科学网—图片空白边缘处理/统计直方图---matlab/保存生成高质量的清晰图 - 杨小林的博文...
  13. 微信小程序 audio 音频 组件
  14. 加密狗加密excel ,方法之 C#开发Excel自定义函数
  15. 大疆DJI 精灵 4 RTK 镜头很暗 ISO
  16. html5 ogv格式转换,ffmpeg – Mac上的HTML5视频OGV转换
  17. General Trainning Strategy in Caffe
  18. 面试官:来写个代码求一下两个数的最大公约数吧
  19. 【Flume】Flume原理简述及示例实践
  20. python视觉识别定位_机器视觉以及验证码识别

热门文章

  1. 路由,代理服务器和NAT技术的区别
  2. 能涨薪3k的jmeter接口测试 接口自动化测试全套教程
  3. 招投标中的常见经验和技巧
  4. 蓝桥杯第六届省赛试题——温度记录器
  5. 【配置】Ubuntu上配置pytorch图文全流程(包括探索过程)
  6. 大数据技术之_23_Python核心基础学习_04_ 异常 + 文件(3.5小时)
  7. Cozmo人工智能机器人SDK使用笔记(4)-任务部分cubes_and_objects
  8. 企业微信 获取当前用户信息
  9. 若依前后端分离版整合Mybatis-puls
  10. clickhouse集群部署方案分析