网站首页 > 技术教程 正文
目录
- 概述
- location介绍
- location指令语法
- location配置实例解析
- location常用场景实战
- 禁止访问.sh后缀的文件实例
- php7进阶到架构师相关阅读
概述
这是关于php进阶到架构之Nginx进阶学习的第一篇文章:5分钟搞懂nginx的location匹配规则
- 第一篇:5分钟搞懂nginx的location匹配规则
location介绍
location指令是http模块当中最核心的一项配置,
根据预先定义的URL匹配规则来接收用户发送的请求,
根据匹配结果,将请求转发到后台服务器、
非法的请求直接拒绝并返回403、404、500错误处理等。
location指令语法
location [=|~|~*|^~|@] /uri/ { … }
或 location @name { … }
规则说明:
多个location配置的匹配顺序:
- 首先匹配:"="
- 其次匹配:"^~"
- 再匹配:文件location书写顺序
- 若没有匹配到,最后把所有请求交给通配符("/")
- 当有匹配成功时候,停止匹配,按当前匹配规则处理请求
当nginx收到一个请求后,
会截取请求的URI部份,
去搜索所有location指令中定义的URI匹配模式。
在server模块中可以定义多个location指令来匹配不同的url请求,
多个不同location配置的URI匹配模式,
总体的匹配原则是:先匹配普通字符串模式,再匹配正则模式。
只识别URI部份
location配置实例解析
location = / {
#规则A
}
location = /login {
#规则B
}
location ^~ /static/ {
#规则C
}
location ~ \.(gif|jpg|png|js|css)$ {
#规则D
}
location ~* \.png$ {
#规则E
}
location / {
#规则F
}
访问 http://localhost/
匹配规则 A
访问 http://localhost/login
匹配规则 B
访问http://localhost/register
匹配规则 F
访问 http://localhost/static/a.html
匹配规则 C
访问 http://localhost/a.gif, http://localhost/b.jpg
匹配规则 D和规则 E,
但是规则 D 顺序优先,
规则 E不起作用
访问 http://localhost/static/c.png
满足条件的有规则C,D,E
但由于~^/static/优先级高,故匹配规则C
访问 http://localhost/a.PNG
匹配规则 E,而不会匹配规则 D,
因为规则 E 不区分大小写
访问 http://localhost/category/id/1111
最终匹配到规则 F,因为以上规则都不匹配
location常用场景实战
实际使用中,至少有三个匹配规则定义,如下:
1.第一个必选规则:直接匹配网站根
通过域名访问网站首页比较频繁,
使用这个会加速处理
这里是直接转发给后端应用服务器了,
也可以是一个静态首页
第一个必选规则
location = / {
proxy_pass http://locolhost/index
}
第二个必选规则:处理静态文件请求
这是 nginx 作为 http 服务器的强项处理静态文件请求,
有两种配置模式,
目录匹配或后缀匹配,
任选其一或搭配使用
location ^~ /static/ {
root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
root /webroot/res/;
}
第三个规则:通用规则
用来转发动态请求到后端应用服务器非静态文件请求就默认是动态请求,自己根据实际把握
location / {
proxy_pass http://localhost/
}
禁止访问.sh后缀的文件实例
server{
......其他配置
location ~.*\.(sh)${
return 405;
}
}
表示当访问 "*.sh"的文件就会返回405错误
php7进阶到架构师相关阅读
https://www.kancloud.cn/gofor/gofor
最后,欢迎大家留言补充,讨论~~~
猜你喜欢
- 2024-09-25 Nginx负载均衡之upstream、server、location参数配置
- 2024-09-25 填一个nginx的路径坑(nginx 路径匹配规则)
- 2024-09-25 Nginx Location深入了解匹配优先级的秘密#java面试
- 2024-09-25 nginx的location配置指令使用详解
- 2024-09-25 Nginx 的 location 指令定义规则和匹配规则
- 2024-09-25 理解Nginx的location(nginx location url)
- 2024-09-25 Nginx 面试通关秘籍-27.Nginx 中 location 的作用是什么及它的语法?
- 2024-09-25 nginx location在配置中的优先级(nginx 路径匹配优先级)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)