Location 指令介绍
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 指令介绍相关推荐
- nginx中的location指令
1.location 介绍 location是Nginx中的块级指令(block directive),location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理 ...
- Nginx中server_name指令介绍
Nginx中server_name指令介绍 用途 根据官方文档说明,用来设置虚拟服务器,对于用IP还是请求头部中的Host字段内容设置这个指令的值,没有明确的分别. 用法 指令后跟特定域名,此时第一个 ...
- vue使用,及指令介绍,计算属性/过滤器
目录 Vue是什么 vue的单页面原理 Vue的使用 指令介绍: v-if和 v-show的区别 v-on 事件绑定: v-bind 绑定属性 处理数组绑定 v-model双向数据绑定 created ...
- C#中的预编译指令介绍
原文:C#中的预编译指令介绍 1.#define和#undef 用法: #define DEBUG #undef DEBUG #define告诉编译器,我定义了一个DEBUG的一个符号,他类似一个变量 ...
- 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.基础使用 ...
- 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...
浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...
- Nginx的location指令
location指令 server{listen 80;server_name localhost;location / {}location /abc{}... } location:用来设置请求的 ...
- [Nginx]location 指令说明
location 指令说明 该指令用于匹配 URL. 语法如下: 1.= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求. ...
- 我的世界服务器怎么显示腐竹来了,我的世界服务器主人可用指令一览 我的世界腐竹常用指令介绍_游侠手游...
我的世界服务器主人可用指令一览,我的世界腐竹指令介绍.作为我的世界中一个服务器的主人,你可以掌控这个服务器的天时地利,具体做法自然就是使用指令了.接下来小编就给大家带来服主的常用指令介绍,大家一起来看 ...
最新文章
- 美国杜克大学计算机专业世界排名,美国杜克大学世界排名情况怎么样?
- python划分数据集用pandas_用pandas划分数据集实现训练集和测试集
- 三十九、ETL工具Kettle基础使用
- java不规则算法_分布式id生成算法 snowflake 详解
- 消息中间件学习总结(13)——Kafka与RocketMQ的单机系统可靠性比较分析
- Button with Round Progress
- python字典的常用方法_python操作字典类型的常用方法
- Redis在游戏服务器中的应用
- 机器学习——支持向量机(SVM)
- HCIE Security Anti-DDos系统组成 备考笔记(幕布)
- typora快捷键大全
- Android 设置屏幕亮度
- vue示例todos
- linpack环境搭建:Openmpi+Openblas+HPL安装教程
- 【探路者】10月13日立会报告(团队第1周-第1次)
- 【论文翻译】异构网络的影响与相似性
- 2019年电赛准备程序STM32版本
- Python 转换圆形、五边形、六边形、八边形PNG图片
- 蓝鲸智云功能剖析介绍
- 死亡之雨新的僵尸病毒中文破解版 v1.0绿色免安装版
热门文章
- 专家分享|物联网正如何改变物理安全的面貌
- 煤矿AI智能视频分析识别系统 opencv
- 【百度商圈】选中的商圈定位到地图中心点
- VISIO画图:乘法器、加法器在哪里?
- TOEFL 听力 astronomy
- Likely Unlikely 原理与用法
- make与sudo make的区别
- 浅析磁传感器HALL、AMR、GMR、TMR技术(转载)
- php在线画布,html5实现一个简单的在线画板
- LLMs:ColossalChat相关的开源训练数据集简介(SFT指令微调数据集+奖励模型排序数据集+RLHF数据集)、RLHF算法实现的三个阶段(监督指令微调→训练奖励模型→RLHF训练模型→​​​