Nginx解析:入门笔记

🌈 个人主页: danci_

🔥 系列专栏: 《设计模式》《MYSQL》

💪🏻 制定明确可量化的目标,坚持默默的做事。


✨欢迎加入探索nginx之旅✨

👋 大家好!文本学习和探索Nginx配置。✨欢迎踏入Nginx的奇妙世界!作为高性能Web服务器与反向代理的佼佼者,Nginx以它的轻量级、高并发处理能力,在全球范围内赢得了无数开发者的青睐。💡今天,就让我们一同揭开Nginx的神秘面纱,探索它如何为网站加速,赋能云端。

一、基本语法

location指令的基本语法如下:

location [=|~|~*|^~] uri { ... }

  • [=|~|~*|^~]:这部分是可选的修饰符,用于指定匹配的类型。
    • =:表示精确匹配。如果请求的URI与location后指定的字符串完全相等,则匹配成功。
    • ~:表示区分大小写的正则匹配。
    • ~*:表示不区分大小写的正则匹配。
    • ^~:表示URI以某个常规字符串开头,如果匹配成功,则不再进行正则表达式匹配。
  • uri:待匹配的请求字符串,可以是不包含正则表达式的标准URI,也可以是包含正则表达式的正则URI。

二、常见配置及作用

  1. 精确匹配(=
    • 作用:当请求的URI与location后指定的字符串完全相等时,直接应用该location块中的配置。
    • 示例:location = / { ... } 表示只有当请求的URI恰好为/时,才会应用该配置。
  2. 正则匹配(~~*
    • 作用:通过正则表达式来匹配请求的URI,~区分大小写,~*不区分大小写。
    • 示例:location ~ \.(gif|jpg|png)$ { ... } 表示匹配所有以.gif.jpg.png结尾的请求,并执行相应配置。
  3. 前缀匹配(无修饰符和^~
    • 无修饰符:表示请求的URI以指定的字符串开头。Nginx会首先检查所有无修饰符的location块,并记录最长的匹配结果,然后才会进行正则匹配。
    • ^~:与无修饰符类似,也是前缀匹配,但如果匹配成功,则不再进行正则表达式的匹配。
    • 示例:location ^~ /images/ { ... } 表示匹配所有以/images/开头的请求,并且一旦匹配成功,将不再检查后续的正则表达式匹配。
  4. 根匹配(/
    • 作用:作为默认匹配,当没有任何其他location块匹配成功时,Nginx会使用根匹配(即/)来处理请求。
    • 示例:location / { ... } 表示匹配所有未被其他location块匹配的请求。

三、其他相关配置

location块中,还可以配置各种指令来控制请求的处理方式,如:

  • root:设置请求的根目录,Nginx将在这个目录下查找请求的资源。
  • alias:设置请求的别名目录,与root不同,alias会将请求的URI替换为指定的路径。
  • index:指定默认索引文件的名称,当请求的是一个目录时,Nginx会尝试返回该目录下的索引文件。
  • proxy_pass:将请求代理到后端服务器。
  • rewrite:重写请求的URI。
  • try_files:尝试不同的文件或路径,直到找到一个存在的文件或目录。

四、匹配优先级

Nginx在处理请求时,会按照以下顺序匹配location块:

  1. 精确匹配(=)。
  2. 前缀匹配(^~),如果匹配成功,则不再进行正则匹配。
  3. 正则匹配(~~*),按配置文件中出现的顺序进行匹配。
  4. 前缀匹配(无修饰符),记录最长的匹配结果。
  5. 根匹配(/)。

当找到匹配的location块后,Nginx将停止搜索,并应用该块中的配置来处理请求。

好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 "点赞" 和 "关注" 哦,我们下次见!🎈

相关推荐
清瞳清8 个月前
NPS配置https访问web管理页面
nginx反向代理·nps·https访问
STRANG-P1 年前
关于 Nginx 的哪些事
运维·nginx·nginx反向代理·nginx限流·nginx动静分离·nginx负载均衡
树下一少年1 年前
nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址
linux·nginx·apache·nginx反向代理·记录真实ip地址