关于 nginx 的配置的 location
2024-08-30 16:45:15
精准匹配和普通匹配:
server{
location =/index.htm{ ////精准匹配
root /var/www/html ////root 指向的目录 也可以写在外面,这样的意思就是 server 的 公共目录,location 可以单独指向一个目录。
index index.htm index.html
}
location =/{
root /var/www/html
index index.htm index.html
}
location /index.htm { ////正则匹配
root /usr/local/src/nginx/html
index index.htm index.html
}
}
如果你在浏览器输入一个 192.168.1.200 访问,服务器会把 url 看做 /,这样就会精准配准第二个 location,然后 url 就被服务器转换成 192.168.1.200/index.htm ,然后访问,再次匹配,又被精准定位第一个 location,然后访问,没有可以匹配的 location 就直接访问到 /var/www/html/index.htm 页面
我的猜测是,如果没有指定具体访问页面,会默认当做访问的是 location 里的 index 第一个指定的页面。
正则匹配和普通匹配:
server {
location /{
root html;
index index.html index.htm;
}
location ~ image{
root /var/www/
index index.html;
}
}
第二段 location 是正则匹配,当 url 中包含 image 就会指向 /var/www 目录【这就是动静分离、img 的 src 也会触动 location】。其实第一个 location 也会进行匹配,因为第一个 / 符合第一个 location 的规则,但是在跳转访问时会匹配到第二个 location 会覆盖前面第一个定位的地址。
注意:
普通匹配是谁匹配的长就是谁的为主。
正则匹配是按照从上往下顺序执行的。
总结:
如果 root 指向的目录写在 server 里面,且 location 里面没有指定 root ,就会按照 server 全局里面的当做根目录。
location 就是匹配 url,无论是域名还是 ip 都会看成一个 /。后面的路径就是我们写的规则来匹配。
location 的命中过程是这样的:1、先判断精准命中,如果命中,立即返回结果并结束解析过程。2、判断普通命中,如果多个命中,记录下最长的命中结果(记录但不结束,最长的为准)。继续判断正则表达式的解析结果,按配置里的正则表达式的顺序为准,由上到下开始匹配,一旦匹配成功 1 个,立即返回结果,并结束解析过程。
最新文章
- android-配置文件AndroidManifest.xml
- Unity WebGL MoonSharp崩溃问题
- PHP常见框架
- fil_space_t
- DirectX截图黑屏的解决办法
- Operfire/XMPP
- Windows下Vundle插件BundleSearch命令出现错误解决方案
- [C++程序设计]指针数组和指向指针的指针
- 兼容所有浏览器的CSS3圆角
- mockito中两种部分mock的实现,spy、callRealMethod
- 基于 Hexo + GitHub Pages 搭建个人博客(一)
- Javamail pop3连接QQ邮箱遇到最深的坑
- docker(三) 镜像和容器常用命令
- C++ 第二次实验
- 方程的解_NOI导刊2010提高
- js动态添加元素绑定事件问题
- html5-attr和prop
- Hibernate的条件查询的几种方式+查询所有的记录
- Java Web应用开发中的一些概念
- c++获取随机数
热门文章
- asp.net DataTables
- Django(part3)
- QT笔记 -- (1) .ui文件
- Node_进阶_3
- NOIp2018模拟赛四十二
- POJ-2240 Arbitrage BellmanFord查可循环圈
- salt 安装kubernetes集群3节点
- PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
- 养活一款APP要“烧”多少钱?
- 4.有关日期格式属性改动常识,v$nls_parameters,between and,查询指定部门的员工信息,in和null,like模糊查询,order by后面能够跟:列名、表达式、别名、序号