nginx反向代理配置location总结及rewrite规则写法
使用 cmd命令窗口
示例
打开
1、location正则写法
一个示例例:
location = / {
# 精确匹配 / ,主机名后⾯面不不能带任何字符串串
[ configuration A ]
}
location / {
# 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
# 但是正则和最⻓长字符串串会优先匹配
[ configuration B ]
}
location /documents/ {
# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
# 只有后⾯面的正则表达式没有匹配到时,这⼀一条才会采⽤用这⼀一条
[ configuration C ]
}
location ~ /documents/Abc {
# 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索
# 只有后⾯面的正则表达式没有匹配到时,这⼀一条才会采⽤用这⼀一条
[ configuration CC ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开头的地址,匹配符合以后,停⽌止往下搜索正则,采⽤用这⼀一条。
[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {
# 匹配所有以 gif,jpg或jpeg 结尾的请求
# 然⽽而,所有请求 /images/ 下的图⽚片会被 config D 处理理,因为 ^~ 到达不不了了这⼀一条正则
[ configuration E ]
}
location /images/ {
# 字符匹配到 /images/,继续往下,会发现 ^~ 存在
[ configuration F ]
}
location /images/abc {
# 最⻓长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在
# F与G的放置顺序是没有关系的
[ configuration G ]
}
location ~ /images/abc/ {
# 只有去掉 config D 才有效:先最⻓长匹配 config G 开头的地址,继续往下搜索, 匹配到这⼀一条正则,采⽤用
[ configuration H ]
}
location ~* /js/.*/\.js
- 规则
模板 |
作⽤用 | 匹配成功是否继续检索 |
location = /x x |
精确匹配 |
否 |
location ^~ / xx | 前缀匹配,不不⽀支持正则,匹配成功则停⽌止 |
否 |
location ~ | 区分⼤大⼩小写的正则匹配 | 是 |
location ~* | 不不区分⼤大⼩小写的正则匹配 | 是 |
location / | 匹配所有 | 是 |
location /xx | 前缀或精确匹配 | 是 |
- 优先级
优先级由⾼高到低:
- /. location = /精确路路径
- location /精确路路径
- location ^~ 前缀匹配
- location ~ 或 location ~* 正则匹配
- location /部分路路径
- location /
实际使⽤用中,个⼈人觉得⾄至少有三个匹配规则定义,如下:2、最佳实践