location有定位的意思,根据uri来进行不同的定位,在虚拟主机中是必不可少的,location可以定位网站的不同部分,定位到不同的处理方式上。

location匹配分类

精准匹配

精准匹配以=号为标志

location = /index.htm  {
root /var/www/html/;
index index.htm index.html;
} location = /index.htm {
root html/;
index index.htm index.html;
}
精准匹配的优先级要优于一般匹配,所以重启nginx后会打开/var/www/html下面的index.htm而不会打开html下的index.htm

一般匹配

location / {
root /usr/local/nginx/html;
index index.htm index.html;
} location /apis {
root /var/www/html;
index index.html;
}
我们访问http://localhost/apis/
对于uri的/apis,两个location的pattern都可以匹配它们
即‘/’能够左前缀匹配,"/apis"也能够左前缀匹配
但此时最终访问的是目录/var/www/html下的文件
因为apis/匹配的更长,因此使用该目录下的文件

正则匹配

正则匹配以~符号为标志

location / {
root /usr/local/nginx/html;
index index.html index.htm;
} location ~ image {
root /var/www/;
index index.html;
}
如果我们访问,http://localhost/image/logo.png
此时"/"与 location /匹配成功
此时"image"正则与"image/logo.png"也匹配成功?谁发挥作用呢?
正则表达式的成果将会使用,会覆盖前面的匹配
图片会真正的返回/var/www/image/logo.png

总结

  • 1.先判断精准命中,如果命中立即返回结果并结束解析过程
  • 2.判断普通命中,如果有多个命中,记录下来最长的命中结果,(记录但不结束,最长的为准确)
  • 3.继续判断正则表达式的解析结果,按配置里的正则表达式顺序为准,由上到下开始匹配,一旦匹配成功一个,立即返回结果,并结束解析过程。
  • 4.普通命中顺序无所谓,按照命中的长短来确定
  • 5.正则命中有所谓,从前往后匹配命中

最新文章

  1. Java多线程卖票例子
  2. java1234教程系列笔记 S1 Java SE 02 eclipse初步使用、注释、标识符
  3. mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程
  4. js计算两个日期相隔几小时几分钟?
  5. 算法库:clapack安装配置
  6. windows 花式装系统
  7. Linux企业级项目实践之网络爬虫(6)——将程序设计成为守护进程
  8. HDOJ-1018 Big Number
  9. DB_Links创建际删除
  10. Wookmark-jQuery-master 瀑布流插件
  11. Keras:基于Theano和TensorFlow的深度学习库
  12. PHP结合Ueditor并修改图片上传路径
  13. Stream闪亮登场
  14. QT 设置有效绘图区域
  15. Docker无法启动问题
  16. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控
  17. 设置网站默认用IE7打开
  18. python的select和epoll
  19. CString与输入输出流对象问题。
  20. Windows 编译 MQTT C++ Client

热门文章

  1. Excel催化剂图表系列之一键完成IBCS国际商业标准图表
  2. JavaSE总结(二)
  3. mysql8.0.15创建数据库和是删除数据库及用户删除
  4. jQuery入门一(jQuery下载以及基本语法)
  5. iView学习笔记(一):Table基本操作(包含前后端示例代码)
  6. JDBC教程
  7. python 读取文件1
  8. ajax性能优化
  9. Java 求字符串中出现频率最高字符
  10. .NET Core on K8S学习实践系列文章索引(Draft版)