Nginx Location模块
相关知识点:
URI:统一资源标识符,是一个用于标识某一互联网资源名称的字符串,该种标识允许用户对任何的资源通过特定的协议进行交互操作。
URL:统一资源定位符,由三部分组成(1)http://协议 (2)存有该资源的主机IP地址 (3)主机资源的具体地址,如目录和文件名。
web上可用的每种资源(HTML文档、图像、视频片段、程序等)都由一个通用资源定位符(URL)进行定位。
location是Nginx配置中的一个指令,用于和访问的URL匹配,而在这个location中所匹配的每个指令将会启动不同的模块去完成相应的工作。
= 请求字符串与URI精确匹配,匹配成功,就停止搜索,立即执行。常用来匹配某一特定文件。
^~ 最大前缀匹配,处理字符串与URI标识匹配度最高的location块,不再使用location块中的正则URI与请求字符串进行匹配。
/ 最大前缀匹配,不带任何前缀。
~ 与大小写相关的正则匹配。
~* 与大小写无关的正则匹配。
(location=)> (location完整路径)>(location^~路径)>(location~ | location~* 正则顺序)>(location部分起始路径)>(location /)
.*\.(gif)$ 描述
.* :任何字符(.任意1个字符,*表示匹配多次)
\. : 转义.gif前面的点号。
(gif) :匹配gif字符,需要以gif结尾的字符才能匹配
$ :必须以gif结尾。
root :服务器接收到请求以后查找资源的根目录路径。
index :匹配发布目录的默认的网站后缀名称。
更改location的URI
alias指令可以改变location接收到的URI的请求路径,语法结构如下:
alias path; #path即为修改后的根路径。
例:
location ~ /data/.\(html)$
{
alias /locationtest/other/$1; #把访问目录/data/改为 /locationtest/other/,请求会访问/locationtest/other/目录下.html结尾的文件,而不再访问/data/目录下的文件。
}
生产环境实际使用建议:
1. 直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理。
2.第一个必选规则:
location = / {
proxy_pass http://tomcat:8080/index.php
}
3. 第二个必选规则是处理静态文件请求,这是Nginx作为http服务器的强项。
4. 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用。
location ^~ /static/ {
root /webroot/static/ ;
}
location ~* \.(gif| | jpg | jpeg | png | css | js | ico )$ {
root /webroot/res/;
}
5.第三个规则就是通用规则,用来转发静态请求到后端应用服务器。
6.非静态文件请求就默认是动态请求,自己根据实际把握。
location / {
proxy_pass http://tomcat:8080/
}
Nginx Location模块的更多相关文章
- Nginx location模块整理
location模块 Nginx location location 指令的作用是根据用户请求的URI来执行不同的应用,URI就是根据用户请求到的网址URL进行匹配,匹配成功了进行相关的操作. loc ...
- nginx location模块--匹配规则
Location语法语法:location [=|~|~*|^~] /uri/ { … } = --> 开头表示精确匹配 ^~ --> 开头表示uri以某个常规字符串开头,理解为匹配url ...
- Nginx中location模块的详细配置(含示例)
题记 此前在配置Nginx location模块的时候玩出了一些bug,折腾了一段时间.后来网上也查阅了相关的资料,看着也比较混乱.周末有空想着好好整理一下location模块的配置,结合自己的亲手实 ...
- Nginx location 匹配顺序整理
Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /etc/redhat-release [r ...
- Nginx配置之location模块和proxy模块
1.location指令的用法介绍 Location主要用来匹配url,如:http://www.beyond.com/nice,在这里对于location来说www.beyond.com是域名,/n ...
- Nginx 切片模块、断点续传
熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 ...
- mac下Nginx+lua模块编译安装
Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...
- nginx location的配置
文章转自:http://www.ttlsa.com/nginx/nginx-location-configure/ location的语法配置规则: 语法规则: location [=|~|~*|^~ ...
- nginx -- handler模块(100%)
handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...
随机推荐
- 软工读书笔记 week 9 ——《构建之法》
软工读书笔记 week 9 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...
- Software Project Management 2017 Homework 1
Recently, I have a project, I use Unity3D to finish a visualization work, which is the final project ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Oracle案例10——HWM(高水位线)性能优化
最近BI同事反馈说一张表的数据查询非常慢,这个表数据总共不到1W行数据,这么一说我们首先想到的是高水位带来的性能问题,即高水位线下占用过多数据块,而这些数据块其实是部分数据占用,大多数是空闲的数据块. ...
- Entity Framework 更新模式之Attach与EntityState.Modified模式的区别
数据库中有一个City表 初始时数据: 实体类与Fluent Api配置映射 public class City { public int Id { get; set; } public string ...
- C#.NET里面抽象类,接口,虚方法
1抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明 ...
- Mysqlbinlog工具及导出数据并转换编码导入
2014 - binlog是通过记录二进制文件方式来备份数据,然后在从二进制文件将数据恢复到某一时段或某一操作点. 1.使用mysqlbinlog工具来恢复 Mysqlbinlog日志如何开启? 在m ...
- ARC下block使用情况
ARC与MRC的block有着一些区别,笔记整理ARC的block,仅仅是自己参考的笔记,详情请参考 http://www.cnbluebox.com/?p=255 在开始之前,请新建一个Model类 ...
- Spring Security自定义GrantedAuthority前缀
如果我们正使用Spring Security提供默认的基于方法的权限认证注解如下: @PreAuthorize("hasAnyRole('ADMIN', 'USER')") pub ...
- 生成器-yield初接触
什么是生成器? 生成器的实质就是迭代器 在python中有三种方式来获取生成器 1. 通过生成器函数 2. 通过各种推导式实现生成器 3. 通过数据的转换也可以获取生成器 将函数中的return换成y ...