location
匹配的规则和优先级
url:统一资源标识符,是一种字符串标识,用于标识抽象的或者物理资源(文件,图片视频等)。
location匹配方式
1、精确匹配:location = / {...}
2、正则匹配:location ~ / {...}
3、一般匹配:location / {...} 只要有文件在目录就能匹配到
匹配规则
=:精确匹配,完全匹配,必须完全一致
^=:匹配普通字符,前缀匹配
~:区分大小写的匹配
~*:不区分大小写的匹配
~$:后缀匹配
!~:区分大小写的匹配,取得逻辑非,取反
!~*:不区分大小写的取反
location优先级
url越精确,越匹配(优先级越高)
优先级从高到低
location = > location ^~ > location ~* > location /.../ > location /
生产中的匹配规则
1、必选规则
location = / {} 直接匹配根网站。通过域名访问网站首页是最多的,可以加快处理速度。(首页)
2、第二个规则
location ^~ /static/ {} 处理静态文件的请求,目录匹配
3、location ~* .(gif|jpg|png|css) 匹配图片
4、通用规则
location / {
proxy_pass 指定代理,反向代理,转发动态请求。将.php .jsp的请求发到后端
}
重定向
rewrite:重写,重定向
rewrite使用nginx的全局变量或者自己设置的变量,结合正则表达式和标志位实现url的重定向
rewrite执行顺序:
1、执行server块当中的rewrite的
2、执行location匹配
3、如果location当中还有rewrite,继续执行。
不停rewrite,死循环,只能10次,然后报错,报错状态码500
rewrite语法
rewrite <regex><replacemnet>[flag]
rewrite /text/(.*) /ky30/$1/ permanent;
rewrite :开始重定向
regex: 正则匹配的规则
replacemnet:表示跳转后的内容,你要重定向的url
flag:标志位
permanent:永久重定向,返回码301
redirect:临时重定向,返回码为302
永久重定向:301,永久性的变更url,搜索引擎会转移他的权重以及排名到新的URL。
临时重定向:302,用于短期变更(网站维护,或者升级更新)。搜索引擎是不是转移权重和排名到新的url。