nginx 配置指令之location使用详解


Posted in Servers onMay 25, 2022

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处理

server { 
	listen 80; 
	server_name localhost; 
	location / { 
	}
	location /abc{
	}
	 ... 
 }

location

用来设置请求的 URI

nginx 配置指令之location使用详解

配置策略

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

具体属性介绍

1、不带符号

要求必须以指定模式开始

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使用详解

2、“= ”

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

server {
	listen 80;
	server_name 127.0.0.1;
	location = /abc {
		default_type text/plain;
		return 200 "access success";
	}
}

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

nginx 配置指令之location使用详解

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

nginx 配置指令之location使用详解

3、“~ ”

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

配置案例

server {
	listen 80;
	server_name 127.0.0.1;
	location ~^/abc\w$ {
		default_type text/plain;
		return 200 "access success";
	}
}
server {
	listen 80;
	server_name 127.0.0.1;
	location ~*^/abc\w$ {
		default_type text/plain;
		return 200 "access success";
	}
}

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

到此这篇关于nginx 配置指令之location使用的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
Nginx+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
nginx搭建图片服务器的过程详解(root和alias的区别)
Mar 31 Servers
Nginx四层负载均衡的配置指南
Jun 11 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
如何Tomcat中使用ipv6地址
May 06 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
nginx之queue的具体使用
Jun 28 Servers
Docker安装MySql8并远程访问的实现
Jul 07 Servers
Nginx跨域问题解析与解决
Aug 05 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
Aug 14 Servers
zabbix配置nginx监控的实现
May 25 #Servers
nginx 添加http_stub_status_module模块
May 25 #Servers
docker 制作mysql镜像并自动安装
May 20 #Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 #Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 #Servers
apache ftpserver搭建ftp服务器
May 20 #Servers
服务器间如何实现文件共享
May 20 #Servers
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
js实现放大镜特效
2017/05/18 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
在Python web中实现验证码图片代码分享
2017/11/09 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
浅谈django 重载str 方法
2020/05/19 Python
python上selenium的弹框操作实现
2020/07/13 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
外贸采购员岗位职责
2014/03/08 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
优秀班集体申报材料
2014/12/25 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2015年市场部工作总结
2015/04/30 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
写给老师的保证书
2015/05/09 职场文书
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电