linux系统nginx工具location指令

适用区块

server

三个区块

Nginx 的 HTTP 配置主要包括三个区块

http { 						# 这个是协议级别
  include mime.types;
  default_type application/octet-stream;
  keepalive_timeout 65;
  gzip on;
    server {			 # 这个是服务器级别
      listen 80;
      server_name localhost;
        location / {  # 这个是请求级别
          root html;
          index index.html index.htm;
        }
      }
}  

location 区段

location是在server块中配置,根据不同的URI使用不同的配置,来处理不同的请求。
location是有顺序的,会被第一个匹配的location处理。

语法:location [=|~|~*|^~|@] pattern{……}

location 前缀

=    表示精确匹配,优先级也是最高的,精确到文件

^~   表示uri以某个常规字符串开头,理解为匹配url路径 

~    表示区分大小写的正则匹配  
~*   表示不区分大小写的正则匹配

!~   表示区分大小写不匹配的正则
!~*  表示不区分大小写不匹配的正则

/    通用匹配,任何请求都会匹配到

@    内部服务跳转
没有修饰符 表示:必须以指定模式开始

location / {
            root /usr/share/nginx/html;
            index index.html;
        }
= 表示:必须与指定的模式精确匹配

location = /test/index.html {
            root /usr/share/nginx/html;
            index index.html;
        }
~ 表示:指定的正则表达式要区分大小写

location ~ / {
            root /usr/share/nginx/html;
            index index.html;
            return 301 https://www.jd.com;
        }
~* 表示:指定的正则表达式不区分大小写

location ~* / {
            root /usr/share/nginx/html;
            index index.html;
            return 301 https://www.jd.com;
        }
^~ 表示:是以指定模式开始,匹配url路径

location ^~ /test/index.html {
            root /usr/share/nginx/html;
            index index.html;
        }
@ 表示:定义命名location区段,这些区段客户段不能访问,只可以由内部产生的请求来访问,必须和try_files配合使用

#寻找/usr/share/nginx/html/index.html找不到就返回@error的值409

location / {
        root /usr/share/nginx/html;
        index index.html;
        try_files /index.htm @error;        
    }

    location @error {
        return 409;
    }

location优先级

带有“=“的精确匹配优先
没有修饰符的精确匹配
正则表达式按照他们在配置文件中定义的顺序
带有“^~”修饰符的,开头匹配
带有“~” 或“~\*” 修饰符的,如果正则表达式与URI匹配
没有修饰符的,如果指定字符串与URI开头匹配
= 大于 ^~  大于 ~|~*|!~|!~* 大于 /
多个location配置的情况下匹配顺序为:首先匹配 =,其次匹配^~, 其次是按正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
================================================
(1) =:表示完全匹配;
(2) ^~:匹配URI的前缀,并且后面的正则表达式不再匹配,如果一个URI同时满足两个规则的话,匹配最长的规则;
(3) ~:匹配正则表达式,大小写敏感;
(4) ~*:匹配正则表达式,大小写不敏感;
优先级:(1)> (2) > (3) = (4)

root指令和alias指令的区别

alias 是一个目录别名的定义,

root 则是最上层目录的定义。

alias后面必须要用“/”结束,否则会找不到文件的,而root则可有可无

例如:
location /img/ {
    alias /var/www/image/;
}
#若按照这种配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

location /img/ {
    root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件

相关推荐

  1. linux系统nginx工具location指令

    2024-01-17 09:38:07       31 阅读
  2. Nginx - location 指令(二)

    2024-01-17 09:38:07       13 阅读
  3. linux系统nginx工具的一些应用

    2024-01-17 09:38:07       36 阅读
  4. Nginx配置文件中Location指令的匹配优先级

    2024-01-17 09:38:07       17 阅读
  5. nginxlocation

    2024-01-17 09:38:07       42 阅读
  6. linux系统中安装nginx指定目录

    2024-01-17 09:38:07       43 阅读
  7. linux系统nginx工具接口压力测试工具和关联php页面

    2024-01-17 09:38:07       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 09:38:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 09:38:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 09:38:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 09:38:07       20 阅读

热门阅读

  1. PHP AES 加密示例

    2024-01-17 09:38:07       30 阅读
  2. 史上最全的spring里面之@Transactional原理解析

    2024-01-17 09:38:07       29 阅读
  3. 常见的查找算法

    2024-01-17 09:38:07       35 阅读
  4. 代码随想录day21

    2024-01-17 09:38:07       32 阅读
  5. 【嵌入式-汇编】常用汇编指令

    2024-01-17 09:38:07       29 阅读
  6. 【PGSQL】date_trunc 函数

    2024-01-17 09:38:07       33 阅读
  7. 电脑DIY-Intel处理器

    2024-01-17 09:38:07       26 阅读
  8. 升级openssl到3.X版本

    2024-01-17 09:38:07       31 阅读
  9. 中国汽车车灯市场预测与投资战略报告(2024版)

    2024-01-17 09:38:07       33 阅读