相关知识点:
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模块的更多相关文章

  1. Nginx location模块整理

    location模块 Nginx location location 指令的作用是根据用户请求的URI来执行不同的应用,URI就是根据用户请求到的网址URL进行匹配,匹配成功了进行相关的操作. loc ...

  2. nginx location模块--匹配规则

    Location语法语法:location [=|~|~*|^~] /uri/ { … } = --> 开头表示精确匹配 ^~ --> 开头表示uri以某个常规字符串开头,理解为匹配url ...

  3. Nginx中location模块的详细配置(含示例)

    题记 此前在配置Nginx location模块的时候玩出了一些bug,折腾了一段时间.后来网上也查阅了相关的资料,看着也比较混乱.周末有空想着好好整理一下location模块的配置,结合自己的亲手实 ...

  4. Nginx location 匹配顺序整理

    Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /etc/redhat-release [r ...

  5. Nginx配置之location模块和proxy模块

    1.location指令的用法介绍 Location主要用来匹配url,如:http://www.beyond.com/nice,在这里对于location来说www.beyond.com是域名,/n ...

  6. Nginx 切片模块、断点续传

    熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 ...

  7. mac下Nginx+lua模块编译安装

    Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ...

  8. nginx location的配置

    文章转自:http://www.ttlsa.com/nginx/nginx-location-configure/ location的语法配置规则: 语法规则: location [=|~|~*|^~ ...

  9. nginx -- handler模块(100%)

    handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ...

随机推荐

  1. Java volatile关键字解惑

    volatile特性 内存可见性:通俗来说就是,线程A对一个volatile变量的修改,对于其它线程来说是可见的,即线程每次获取volatile变量的值都是最新的. volatile的使用场景 通过关 ...

  2. linux 文件搜索命令find、-name、-iname、通配符*?、-size、-user、-group、-amin、-cmin、-mmin、-a、-o、-exec/-ok、-inum

    尽可能规划好目录结构,少用文件搜索操作,因为它会占用大量的系统资源 find /bin/find find [搜索范围] [匹配条件] find /etc -name initfind /etc -n ...

  3. tomcat报错相关问题

    action1:tomcat7w.exe里面path to executable不是当前所用的tomcat(可执行文件路径是你以前使用过的tomcat路径,导致启动服务报错:找不到可执行文件) 解决办 ...

  4. Tomcat 安全设置 及 内存修改

    1.删除%tomcatRoot%/webapps目录下的examples.docs文件夹 2.修改%tomcatRoot%/conf/tomcat-users.xml <?xml version ...

  5. php 导出

    //导出 //放在model层的类 <?phpnamespace frontend\models; use yii\base\model; /** * @copyright (c) 2014 a ...

  6. Linux----CentOS-7搭建免流服务器(iOS 端)

    本次实验采用腾讯云服务器:https://cloud.tencent.com/ 大学生身份的可以看看有没有什么活动购买 其他身份的78一个月 关于腾讯云服务器的使用可以看看腾讯云的使用手册 本博客涉及 ...

  7. Spring Boot REST

    资源(Resources) 所谓资源,就是网络上一个实体,或者是网络上一个具体信息.他可以是一段文本,一张图片,一种服务,总之是一个具体的实体.可以用一个URI(统一资源定位符)指向它,每种资源对应一 ...

  8. Spring各版本源码下载

    spring framework 各版本源码下载地址 现在spring的源码下载地址真是不好找,这次终于找到了.记录一下,以帮助需要的朋友. https://github.com/spring-pro ...

  9. Spring-IOC bean 创建过程中的 ObjectFactory

    AbstractBeanFactory中doGetBean方法里有一段拿到RootBeanDefinition后,实例化该bean的方法 // Create bean instance. if (mb ...

  10. laravel框架之blade模板引擎

    ## 1.基本用法 ##情形1 $name = laravel5 <div class="title"> {{$name}} {{$name}}</div> ...