linu_nginx_location语法

时间:2021-07-15 20:32:08

location的作用是什么?

  每个server中都需要配置location,通过location匹配域名后内容,再通过location响应同一个域名下不同请求

location语法

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

       ...

}

  location  指令

  [=|~*|^~] 匹配标识

  {...} 匹配URI后执行的配置段

  uri匹配的的域名后面url,去除域名的url段

  uri 可以是普通字符串地址路径或者正则表达式:

  ~* 不区分大小写

  ~ 区分大小写

  ^~ 只做字符匹配不做正则匹配

  = 精确匹配

  / 表示起始域名或者ip地址

  这里有顺序先后,= 是最优先的,其他都没匹配到默认匹配 /

  第一名           =

  第二名           匹配常规字符串,不做正则匹配

  第三名           正则匹配

  第四名           匹配常规字符串,如果有正则则优先匹配正则

  第五名           所有的location都不能匹配后的默认匹配

location中有两个参数:

root        # 表示找html页面的根目录

index      # 只是返回符合这个location的内容

  对于网页url,会首先匹配域名servername,然后再匹配location, 无论是servername还是location都是按配置上下顺序依次匹配,一旦匹配到内容,不再往下匹配,但是location中 = 的匹配优先级最高

相关配置:

server {
listen 80;
server_name bbs.etiantian.org;
location ^~ /document/ { # 只匹配字符
return 201;
}
location ~* \.(jpg|gif|png)/?$ { # 匹配图片内容
return 200;
}
location / { # 默认域名或ip,其他都没匹配上,返回这个默认
return 404;
}
}