网站首页 > 技术教程 正文
使用过nginx的同学都知道,在nginx配置文件中通过location配置路由转发规则,配置语法为:
location [=|~|~*|^~] /uri/ {
...
}
中括号中为路由匹配符号,常见的有:
1 =:精确匹配
2 ^~:精确前缀匹配
3 ~:区分大小写的正则匹配
4 ~*:不区分大小写的正则匹配
5 /uri:普通前缀匹配
6 /:通用匹配
精确匹配
精确匹配使用 = 表示,nginx进行路由匹配的时候,精确匹配具有最高的优先级,请求一旦精确匹配成功nginx会停止搜索其他到匹配项
配置实例
location = /test {
...
}
精确前缀匹配
精确前缀匹配的优先级仅次于精确匹配,nginx对一个请求精确前缀匹配成功后,停止继续搜索其他到匹配项
配置实例
location ^~ /test_a {
...
}
正则匹配
正则匹配分为区分大小写和不区分大小写两种,分别用 ~ 和 ~* 表示;一个请求精确匹配和精确前缀匹配都失败后,如果配置有相关的正则匹配location,nginx会尝试对该请求进行正则匹配。需要说明的是正则匹配之间没有优先级一说,而是按照在配置文件中出现的顺序进行匹配,一旦匹配上一个,就会停止向下继续搜索
配置实例
# 配置1
location ~ /test_a {
...
}
# 配置2
location ~* /test_A {
...
}
对于请求 /test_a/hello 来说会被匹配到 配置1 处理,/test_A/hello 则会被匹配给 配置2 处理
普通前缀匹配
普通前缀匹配前面没有任何修饰符,直接在location后写需要匹配的uri,它的优先级次于正则匹配
配置实例
location /img {
...
}
通用匹配
通用匹配使用一个 / 表示,可以匹配所有请求,一般nginx配置文件最后都会有一个通用匹配规则,当其他匹配规则均失效时,请求会被路由给通用匹配规则处理;如果没有配置通用匹配,并且其他所有匹配规则均失效时,nginx会返回 404 错误
配置实例
location / {
...
}
引用一个完整例子
nginx路由规则配置:
location = / {
echo "规则A";
}
location = /login {
echo "规则B";
}
location ^~ /static/ {
echo "规则C";
}
location ^~ /static/files {
echo "规则X";
}
location ~ \.(gif|jpg|png|js|css)$ {
echo "规则D";
}
location ~* \.png$ {
echo "规则E";
}
location /img {
echo "规则Y";
}
location / {
echo "规则F";
}
请求uri 匹配路由规则 http://localhost/ 规则A http://localhost/login 规则B http://localhost/register 规则F http://localhost/static/a.html 规则C http://localhost/static/files/a.txt 规则X http://localhost/a.png 规则D http://localhost/a.PNG 规则E http://localhost/img/a.gif 规则D http://localhost/img/a.tiff 规则Y
以上是对nginx路由匹配规则的粗略总结和归纳,如有不足之处欢迎指正,共同探讨!
作者:baboq
猜你喜欢
- 2024-10-11 Docker四种网络模式(Bridge,Host,Container,...
- 2024-10-11 HTTP 头字段 Origin、Host 和 Referer 有什么区别?
- 2024-10-11 每日漏洞 | Host头攻击(http头hostname攻击漏洞)
- 2024-10-11 Docker容器实战之数据持久化+网络模式+资源限制
- 2024-09-19 Nginx Proxy Manager - Docker 建站最佳伴侣
- 2024-09-19 高性能负载均衡:nginx搭建tomcat集群
- 2024-09-19 使用 nginx 反向代理多个 docker 容器
- 2024-09-19 Nginx配置虚拟主机的三种方式(nginx虚拟主机配置文件)
- 2024-09-19 Nginx开启gzip压缩演示(nginx怎么打开)
- 2024-09-19 如何控制Nginx并发连接数(如何控制nginx并发连接数量)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)