nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx location使用

nginx 配置指令之location使用详解

作者:逆风飞翔的小叔

这篇文章主要介绍了nginx 配置指令之location使用,Nginx最大的安全问题并不是其安全漏洞,而是在运维上面,尤其是错误配置导致的问题,对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处理

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

location

用来设置请求的 URI

配置策略

具体属性介绍

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

2、“= ”

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

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

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

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

3、“~ ”

配置案例

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使用的文章就介绍到这了,更多相关nginx location使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文