Nginx(四)-- 配置文件之location
1.location的作用
location主要做定位功能,根据uri来进行不同的定位。
2.location的语法
location [=|~|~*|^~] /uri/ { …}
- = 开头表示精确匹配
- ^~ 表示uri以某个常规字符串开头,相当于匹配uri路径
- ~ 区分大小写的正则匹配
- !~ 区分大小写不匹配
- !~* 不区分大小不匹配
- ~* 不区分大小写的正则匹配
- / 通用匹配
server中可以有多个location,来进行匹配。
3.匹配的优先级 --- 精准匹配 > 一般匹配
(1) 在nginx.conf文件中的添加如下内容:
第一个表示 是 一般匹配,第二个表示 精准匹配。
(2) 在 nginx/html文件夹下 新建 yiban 和 jingzhun 文件夹,分别 在里面 新建 index.html ,在 yiban/index.html中 写入 :This is yiban page.
在 jingzhun/index.html中写入:This is jingzhun page. 以作区分
(3) 从新加载nginx.con文件:./nginx -s reload
(4) 在浏览器中访问 192.168.80.128/index.html,可以 看到:This is jingzhun page.
说明 精准匹配的优先级 大于 一般匹配。
(5) 将上图中的内容改为如下:
location /index.html {
root html/yiban;
index index.html;
} location = /index.html { # 在这里加了一个空格
root html/jingzhun;
index index.html;
} location / {
root html;
index index.html index.htm;
}
然后重新加载配置文件,直接访问IP地址:192.168.80.128,结果 还是:This is jingzhun page.
这是因为在nginx中做了多次匹配,访问 IP地址,首先 匹配的 是 第11行,然后进去 之后 是 index.html,这个index.html 又和 第6行中的 location匹配,就跳转到jingzhun/index.html了。
4.匹配的优先级 --- 正则匹配 > 一般匹配
1. 如果两个location都是一般匹配,则会按照最常路径匹配。如下:
就会匹配图中的第一个。
总结:1. 先匹配uri前缀部分。
2.因为location不是严格匹配,而是一个前缀匹配,按照上图所示,就会产生两个location匹配。
3.如果通过192.168.80.128/prefix/mid/index.html ,那么会按照最长路径进行匹配,即匹配 第一个。
2. 如果既有一般匹配,又有正则匹配,如下:
当访问 192.168.80.128/prefix/mid/java/index.html时,先匹配 第一个,然后匹配第二个。
匹配优先级:
1.首先匹配精准路径
2.如果两个location都是一般匹配规则,那么会按照最长路径匹配
3.一般匹配和正则匹配的过程是:首先会选择一般匹配过程中的大前缀匹配,但是匹配过程不会停止,最大前缀匹配只是一个临时结果,nginx还会继续检查正则location。按照正则location在配置文件的物理顺序做匹配,如果匹配到一条正则location,就不会考虑后面的规则。
Nginx(四)-- 配置文件之location的更多相关文章
- 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本 uwsgi- ...
- Shell脚本创建Nginx的upstream及location配置文件
#!/bin/sh ##################################################### # Name: create_nginx_conf.sh # Versi ...
- nginx详细配置文件 (转)
Nginx的代码是由一个核心和一系列的模块组成, 核心主要用于提供Web Server的基本功能,以及Web和Mail反向代理的功能:还用于启用网络协议,创建必要的运行时环境以及确保不同的模块之间平滑 ...
- Nginx 主配置文件参数详解
Nginx 主配置文件参数详解 Nginx 安装完毕后,会有响应的安装目录,安装目录里 nginx.conf 为 nginx 的主配置文件, ginx 主配置文件分为 4 部分,main(全局配置). ...
- Nginx核心配置文件常用参数详解
Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...
- nginx中配置文件的讲解
一: 1.配置文件的结构 nginx由配置文件中指定的指令控制的模块组成. 指令分为简单指令和块指令. 一个简单的指令由空格分隔的名称和参数组成,并以分号(;)结尾. 块指令具有与简单指令相同的结构, ...
- Nginx配置配置文件详解
文章目录 配置文件 nginx.conf配置文件详解 用于调试.定位问题的配置参数 正常运行必备的配置参数 优化性能的配置参数 事件相关配置 Fastcgi相关配置参数 常需要调整的参数 nginx作 ...
- 【nginx运维基础(2)】Nginx的配置文件说明及虚拟主机配置示例
配置文件说明 #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为当前主机的CPU总核心数. worker_processes 8; #全局错误日志定义类型, ...
- Nginx的配置文件(nginx.conf)解析和领读官网
步骤一:vi nginx.conf配置文件,参考本博文的最下面总结,自行去设置 最后nginx.conf内容为 步骤二:每次修改了nginx.conf配置文件后,都要reload下. index.ht ...
- [原]生产环境下的nginx.conf配置文件(多虚拟主机)
[原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在 ...
随机推荐
- LeetCode: Combinations 解题报告
Combinations Given two integers n and k, return all possible combinations of k numbers out of 1 ... ...
- C++中冒号和双冒号的用法
1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; X ...
- 一款由jquery实现的超炫的页面加载特效
今天为大家带来一款由jquery实现的超炫的页面加载特效.连续的几个页面分开特效.最后由三维的线条由远至近消失,然后由近至远出现.效果超级梦炫.一起看下效果图: 在线预览 源码下载 实现的代码. ...
- ucenter通信失败和不能登录的解决
对于ucenter真是让人不省心,修改一下url,就通信失败了. 1.通信失败 然后后来怎么也改不好了,后来一步一步打log,发现是uc_server和uc_client不一致. 检查uc_serve ...
- maven 打包如何将依赖打进来
阿斯蒂芬 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupI ...
- am335x Linux kernel DTS pinmux 定义记录
记录am335x TI PDK3.0 Linux Kernel 设备的pinmux 的配置 在TI 的Linux kernel 设备树里面,有很多关于pinctrl-single,pins 的配置, ...
- # rp2833板卡更新u-boot.bin的步骤
1 建立tftpserver,并验证tftpserver的正确性(切记),并将PC主机网址设置192.168.18.105: 2 将u-boot-am.bincopy到tftpserver的目录下,并 ...
- ExtJs GridPanel 给表格行或者单元格自定义样式
Ext.onReady(function(){ Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:['name', 'ema ...
- Missing artifact jdk.tools:jdk.tools:jar:1.8 pom.xml
在maven项目中出现下面错误信息: Description Resource Path Location Type Missing artifact jdk.tools:jdk.tools:jar: ...
- java多线程面试题整理及回答
1)现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉.这个多线程问题比 ...