相关知识点:
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. 一步一步pwn路由器之uClibc中malloc&&free分析

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 栈溢出告一段落.本文介绍下 uClibc 中的 malloc 和 ...

  2. Android微信支付—注意事项

    坑点一:PayReq的参数 sign的生成 PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 ...

  3. 解决升级PHP7.1后,发邮件时提示“fsockopen(): Peer certificate CN=`xxx.xx.com' did not match expected CN=`113.x.xx.98”

    把项目环境升级到PHP7.1后,发现在不使用SSL时可以使用IP发邮件,可设置成SSL时就只能使用hostname发送,PHP提示的错误信息大致意思是说,IP与hostname无法通过SSL验证,修改 ...

  4. 解决js跨域

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  5. alwayson监控

    最近大体自己写了点alwayson相关的监控,是通过存储过程的方法,做个笔记如下: --alwayson启用状态 declare @isenabled sql_variant SELECT @isen ...

  6. 关于Oracle中sys、system和Scott用户下的数据库连接问题

    system默认:manager sys默认:change_on_install 使用SQL Plus登录数据库时,system使用密码manager可直接登录. 由于为自己的密码时更改过的,所以我的 ...

  7. 编译并导入OpenSSL

    编译并导入OpenSSL 1. 首先,需要运行脚本生成OpenSSL库,参考 https://github.com/x2on/OpenSSL-for-iPhone 示例 2. 运行脚本生成静态库 下一 ...

  8. 裸机恢复 (BMR) 和系统状态恢复

    DPM 将系统保护数据源视为两个组成部分 – 裸机恢复 (BMR) 和系统状态保护. BMR 涉及保护操作系统文件和重要卷上的所有数据,用户数据除外. 系统状态保护涉及保护操作系统文件. DPM 使用 ...

  9. Spring中的统一异常处理方式

    源自:https://segmentfault.com/a/1190000016236188 在具体的SSM项目开发中,由于Controller层为处于请求处理的最顶层,再往上就是框架代码的. 因此, ...

  10. Redis学习---Redis操作之String

    set(name, value, ex=None, px=None, nx=False, xx=False) 在Redis中设置值,默认,不存在则创建,存在则修改 参数:      ex,过期时间(秒 ...