• Post author:
  • Post category:nginx
  • Post comments:0评论

官方文档:https://nginx.org/en/docs/http/ngx_http_core_module.html

1、root

root,用于设置请求的根目录:

Syntax:     root path;
Default:    root html;
Context:    http, server, location, if in location

例如:

# 配置
location /test {
    root /data/a;
}

请求:http://localhost/test/1.txt
$request_uri: /test/1.txt
处理结果:root 路径 + 用户 uri 请求
响应文件:/data/a/test/1.txt

2、alias

alias,用于定义指定位置的替换:

Syntax:     alias path;
Default:    —
Context:    location

例如:

# 配置
location /test {
    alias /data/a;
}

请求:http://localhost/test/1.txt
$request_uri: /test/1.txt
处理结果:alias 路径 + /1.txt(uri 去除匹配到的 location)
响应文件:/data/a/1.txt

如果在用正则表达式定义的 location 中使用 alias,则此类正则表达式应包含捕获,alias 应引用这些捕获,如下:

配置:
location ~ ^/users/(.+\.(?:gif|jpe?g|png))$ {
    alias /data/images/$1;
}

请求:http://localhost/users/xm/1.png
$1 为 xm/1.png
响应文件:/data/images/xm/1.png

正则解析:

^/users/:匹配以 /users/ 开头
():捕获括号中表达式匹配到的内容,可使用 $1 引用。
.+:表示匹配任意字符一个或多个
\.:匹配 . 字符 
(:?xx|xx|xx)::? 放到这里表示匹配表达式,但不捕获匹配结果,不进行存储供后面使用。
jpe?g:可以匹配 e 0次或者1次,即匹配 jpg 和 jpeg
$:结尾

发表回复

验证码: 4 + 3 =