Nginx 从入门到放弃(四)
前面我们学习了nginx的基本操作和日志管理,今天我们学习一下生产环境经常会用到的路由定位location设置,在工作中,经常可能会出现怎么设置的路由访问不到网页呀?总是出现404错误啊,这些都很有可能是location的配置有误所导致的,所以学习location的配置也是学习nginx必不可少的一节。
nginx的location路由定位匹配
location是在server中匹配本地的目录,根据不同的url定位到不同的内容上。
location [=|~|~*|^~] pattern {
}
# 中括号中不写任何参数表示一般匹配,也可以写参数
# location = patt {} [精准匹配]
# location patt {} [一般匹配]
# location ~ patt {} [正则匹配]
# location ~* {} [正则匹配忽略大小写]
# location ^~ {} []
如何发挥作用呢?
首先查看是否有精准匹配,如果有,则停止匹配过程。
location = patt {
config A
}
如果 $uri == patt, 匹配成功,使用 configA
location = / {
root /var/www/html
index index.htm
}
location / {
root /data/html
index index.html
}
上面配置如果访问http://xxx.com/
定位流程是
精确匹配中 “/” , 得到 index 页为 index.htm
再次访问 /index.htm,此次内部转跳uri已经是“/index.htm”,所以只能匹配中一般匹配
在/data/html中查找文件,访问路径是/data/html/index.htm
正则匹配
如果一般匹配能够匹配上,nginx将继续查找是否有正则匹配能够匹配上,如果有就匹配正则匹配。正则匹配是比一般匹配优先的。
总结:location的命中过程
先判断精准命中,如果命中,立即返回结果并结束匹配过程
判断普通命中,如果有多个命中,记录下来最长的命中结果,但并不结束
继续判断正则表达式的匹配结果,按配置里的正则表达式顺序为准,由上到下开始匹配,一旦匹配成功1个,立即返回结果,结束匹配过程。
普通命中,顺序无所谓,是因为按命中的长短来确定的。
正则命中,顺序有所谓,因为是从前往后命中的。
Nginx 从入门到放弃(四)的更多相关文章
- hive从入门到放弃(四)——分区与分桶
今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...
- Nginx从入门到实践(四)
Nginx常见问题和排错经验,实践应用场景中的方法处理Nginx安全,常见的应用层安全隐患,复杂访问控制,Nignx的sql防注入安全策略,Nginx的整体配置,搭建合理Nginx中间件架构配置步骤. ...
- Nginx从入门到放弃-第2章 基础篇
2-1 什么是Nginx 2-2 常见的中间件服务 2-3 Nginx的特性_实现优点1 2-4 Nginx特性_实现优点2 2-5 Nginx特性_实现优点3 2-6 Nginx特性_实现优点4 2 ...
- Nginx从入门到放弃-第3章 场景实战篇
3-1场景实践篇内容介绍: 3-2 Nginx作为静态资源Web服务_静态资源类型: 3-3 Nginx作为静态资源web服务_CDN(内容分发网络)场景: 3-4 Nginx作为静态资源Web服务_ ...
- Nginx从入门到放弃-第5章 Nginx架构篇
5-1 Nginx常见问题_架构篇介绍 5-2 Nginx常见问题_多个server中虚拟主机读取的优先级 5-3 Nginx常见问题_多个location匹配的优先级1 5-4 Nginx常见问题_ ...
- Nginx从入门到放弃-第4章 深度学习篇
4-1 Nginx动静分离_动静分离场景演示 4-2 Nginx动静分离_动静分离场景演示1 4-3 Nginx的动静分离_动静分离场景演示2 4-4 Rewrite规则_rewrite规则的作用 4 ...
- 学习nginx从入门到实践(四) 基础知识之nginx基本配置语法
nginx基本配置语法 1.http相关 展示每次请求的请求头: curl -v http://www.baidu.com 2.nginx日志类型 error.log. access.log log_ ...
- Nginx 从入门到放弃(五)
nginx的rewrite重写 nginx具有将一个路由经过加工变形成另外一个路由的功能,这就叫做重写. 重写中用到的指令 if (条件) {} 设定条件,再进行重写 set # 设定变量 retur ...
- Nginx 从入门到放弃(三)
今天来学习nginx的日志管理,并通过日志脚本来切割日志并保存. nginx日志管理 在nginx中设置日志格式 http { log_format main '$remote_addr - ...
随机推荐
- Java实现蓝桥杯VIP算法训练 预测身高
试题 算法训练 预测身高 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述: 生理卫生老师在课堂上娓娓道来: 你能看见你未来的样子吗?显然不能.但你能预测自己成年后的身高,有公式: 男 ...
- Linux文件搜索命令locate、which、grep详解
命令locate详解 命令locate,其基本功能是在文件资料库中可以快速的搜索系统文件,占用系统资源很少,例如:locate my.cnf 还可以使用locate -i [文件名],不区分大小写进行 ...
- java创建透明背景的PNG图片加自定义文字水印
人在码上走,需求天天有.这不,今天前端让我返回一个带自定义水印的背景图片.一通google,有现成的代码,但是基本是直接在源图上添加水印,生成出来的文字样式也没有控制好,看来又只有自己造轮子了. 过程 ...
- centos7 yum源更新
先进入到yum源文件cd /etc/yum.repo.d/ 1.创建一个repo_bak目录,用于保存系统中原来yum的repo文件. sudo mkdir repo_bak 2.备份yum源文件至 ...
- list基本运用
#include<iostream> #include<list> using namespace std; list<int>list1,list2; void ...
- idea 启动命令行的时候提示不能创建PTY
问题描述: 昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定.结果到下午使用idea的Terminal 命令行的时候提示,如下图错误: ...
- STL中常用算法
一.排序 sort sort(first_pointer,first_pointer+n,cmp) 默认为升序 若要使用降序,自行写cmp 函数 bool cmp(int a,int b){ retu ...
- tensorflow2.0学习笔记第一章第一节
一.简单的神经网络实现过程 1.1张量的生成 # 创建一个张量 #tf.constant(张量内容,dtpye=数据类型(可选)) import tensorflow as tf import num ...
- 解读Spring源码之前的准备
请忽略以下的文章,现在回过头来才发现学习源码不用如此复杂 1.IDEA 新建一个maven项目, 2.pom 中倒入 spring5 的基本包,然后利用maven 插件down下源码 3.然后就可以开 ...
- Jupyter的搭建
在家实在无聊,伏案沉思良久,忽然灵机一动,何不写写Python?然而电脑上的软件早已人是物非,Pycharm已然不复存在.但是又不想装软件找激活码,于是,只好建个Jupyter先凑合一下. 1. 安装 ...