常见 nginx proxy location 配置笔记

June 13, 20192分钟阅读

nginx 是前端常用的服务器, 配置 location 是一项必须掌握的技能。如下是我整理的一些常用 location 常用配置

单页面配置

location / {
    root /path/to/public
    try_files $uri $uri/ /index.html;
}

proxy location

nginx location 共有 [ = | ~ | ~* | ^~ ] 可选前缀方式。

假如有如下配置

location = / {
    [ configuration A ]
}

location / {
    [ configuration B ]
}

location /documents/ {
    [ configuration C ]
}

location ^~ /images/ {
    [ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}
  • 如果没有任何 prefix, 当所有其他路由都不满足时,会执行配置B
  • =会使用严格模式,只有当请求为”/“时才访问A。并且其优先级最高
  • ~*~的区别为:~*是大小写不敏感(case-insensitive), ~大小写敏感(case-sensitive), 由于一般服务都部署在 linux 上, 故推荐使用~
  • ^~: 会提升优先级, 首先匹配路由, 优先级会仅次于=。一经匹配, 遍不会使用其他路由。

只有~开头的方式才能使用正则表达式, ^~ 后面不能使用正则!

常用代理正则

匹配后缀 gif,jpg, jpeg

location ~* \.(gif|jpg|jpeg)$ {

}

匹配以 user,product 开头的所有请求

# 如果要求必须包含至少一个长度 使用 ~* ^\/(user|product)\/.+
location ~* ^\/(user|product)\/ {

}

Reference

未经许可, 不可转载