小知识:nginx 配置指令之location使用详解

Nginx是支持世界上所有网站三分之一的Web服务器。因为轻巧,模块化,用户友好的配置格式以强大的反向代理能力,Nginx迅速取代其他Web服务器成了互联网上最常用Web服务器之。作为一个门户和对外暴露的入口,Nginx也是Web服务在保障企业服务在性能和安全方面功不可没,虽然Nginx也暴露过一些漏洞(比如CVE-2013-4547,CVE-2017-7529,CVE-2018-16843/16844,CVE-2019-9516和CVE-2020-12440等),但是基本上都无法直接(难于)利用。但是没有漏洞,不等于不能被利用(同样有漏洞,不等于可以利用)。Nginx最大的安全问题并不是其安全漏洞,而是在运维上面,尤其是错误配置导致的问题。本文我们就介绍nginx 配置指令之location使用。

前言

location 指令是http模块中非常重要的配置指令之一,Location是Nginx中的块级指令(block directive),通过配置Location指令块,可以决定客户端发过来的请求URI如何处理(是映射到本地文件还是转发出去)及被哪个location处理

?
1
2
3
4
5
6
7
8
9
server {
listen 80;
server_name localhost;
location / {
}
location /abc{
}
}

location

用来设置请求的 URI

%小知识:nginx 配置指令之location使用详解-猿站网-插图

配置策略

uri变量是待匹配的请求字符串,可以不包含正则表达式,也可以包含正则表达式; nginx服务器在搜索匹配location的时候,是先使用不包含正则表达式进行匹配,找到一个匹配度最高的一个,然后在通过包含正则表达式的进行匹配; 如果能匹配到直接访问,匹配不到,就使用刚才匹配度最高的那个location来处理请求;

具体属性介绍

1、不带符号

要求必须以指定模式开始

?
1
2
3
4
5
6
7
8
server {
listen 80;
server_name 127.0.0.1;
location /abc {
default_type text/plain;
return 200 “access success”;
}
}

在这种情况下,只要是以 /abc开头的都能被匹配到,以下访问都是正确的

http://IP/abc

http://IP/abc?p1=TOM

http://IP/abc/

http://IP/abcdef

%小知识:nginx 配置指令之location使用详解-1猿站网-插图

2、“= ”

= :用于不包含正则表达式的uri前,必须与指定的模式精确匹配

?
1
2
3
4
5
6
7
8
server {
listen 80;
server_name 127.0.0.1;
location = /abc {
default_type text/plain;
return 200 “access success”;
}
}

在这种情况下,访问的路径必须是以 /abc开头才能正确被访问,如下是正常的,

%小知识:nginx 配置指令之location使用详解-2猿站网-插图

 但是如果换成其他的路径,就不对了

%小知识:nginx 配置指令之location使用详解-3猿站网-插图

3、“~ ”

~ : 用于表示当前uri中包含了正则表达式,并且区分大小写 ~*: 用于表示当前uri中包含了正则表达式,并且不区分大小写; 换句话说,如果uri包含了正则表达式,需要用上述两个符合来标识;

配置案例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 80;
server_name 127.0.0.1;
location ~^/abcw$ {
default_type text/plain;
return 200 “access success”;
}
}
server {
listen 80;
server_name 127.0.0.1;
location ~*^/abcw$ {
default_type text/plain;
return 200 “access success”;
}
}

^~: 用于不包含正则表达式的 uri 前,功能和不加符号的一致,唯一不同的是,如果模式匹配,那么就停止搜索其他模式了。

到此这篇关于nginx 配置指令之location使用的文章就介绍到这了,更多相关nginx location使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/congge_study/article/details/124910643

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:详解Nginx的超时keeplive_timeout配置步骤

2023-3-16 1:14:51

建站知识

小知识:zabbix配置nginx监控的实现

2023-3-16 1:33:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索