server {
location / {
root /data/www;
}
location /images/ {
root /data;
}
}
基本配置说明:
location /:匹配所有请求location /images/:匹配以 /images/ 开头的请求root:指定网站根目录基本配置原理:
Nginx 根据 URI 选择位置,然后根据位置的配置处理请求。root 指令用于指定网站根目录,Nginx 会将 URI 附加到根目录后面,形成文件路径。
location / {
root /data/www;
}
location /images/ {
root /data;
}
前缀匹配说明:
location /:匹配所有请求location /images/:匹配以 /images/ 开头的请求前缀匹配原理: 前缀匹配用于匹配以指定前缀开头的 URI。前缀匹配会匹配最长的前缀。
location ~ \.php$ {
root /data/www;
}
正则表达式匹配说明:
location ~ \.php$:匹配以 .php 结尾的请求正则表达式匹配原理: 正则表达式匹配用于匹配复杂的 URI。正则表达式可以使用捕获组,捕获组可以在配置中使用。
location = /404.html {
root /data/www;
}
精确匹配说明:
location = /404.html:精确匹配 /404.html精确匹配原理: 精确匹配用于匹配指定的 URI。精确匹配的优先级最高。
=^~~ 或 ~*优先级原理:
Nginx 按照精确匹配、前缀匹配 ^~、正则表达式匹配 ~ 或 ~*、前缀匹配的顺序匹配位置。
| 修饰符 | 说明 | 示例 |
|---|---|---|
= | 精确匹配 | location = / |
^~ | 前缀匹配,优先级高于正则表达式 | location ^~ /images/ |
~ | 正则表达式匹配,区分大小写 | location ~ \.php$ |
~* | 正则表达式匹配,不区分大小写 | location ~* \.php$ |
| 无修饰符 | 前缀匹配 | location / |