这篇文章主要讲解了“Nginx的location怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx的location怎么使用”吧!
语法
Syntax: location [ = | ~ | ~* | ^~ ] uri { ... } location @name { ... }Default: —Context: server, location
语法 | 说明 |
location = /uri | =开头表示精确匹配,只有完全匹配上才能生效。 |
location ^~ /uri | ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 |
location ~ pattern | ~开头表示区分大小写的正则匹配。 |
location ~* pattern | ~*开头表示不区分大小写的正则匹配。 |
location /uri | 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。 |
location / | 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。 |
精确匹配的优先级最高。
如果没有精确匹配,那么就会对配置文件中的所有非正则location
进行匹配,找到最长匹配。如果最长匹配是以^~
开头,那么就返回该匹配结果。
对正则匹配逐个进行匹配,如果匹配成功,则返回正则location
,如果不成功,则返回第2
步匹配的最长匹配结果
nginx 配置 proxy_pass时可以实现URL路径的部分替换。
1.proxy_pass的目标地址,默认不带/,表示只代理域名,url和querystring部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL)
2.如果在目标地址后增加/,则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址
例子:
server { location /abc { proxy_pass http://server_url; } location /abc { proxy_pass http://server_url/; } }
比如请求 /abc/b.html
如上两个匹配成功后,实际代理的目标url分别是
http://server_url/abc/b.html (把/abc/b.html拼接到http://server_url之后)
http://server_url/b.html (把/abc/b.html的/abc去掉之后,拼接到http://server_url/之后)
感谢各位的阅读,以上就是“Nginx的location怎么使用”的内容了,经过本文的学习后,相信大家对Nginx的location怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。