nginx优先级、规则及重定向

目录

一、location分类:

1、精确匹配 locatin=/

2、正则匹配:location~区分大小写进行匹配

3、一般匹配

二、locatoin匹配的优先级:

三、三个必须选规则:

1、location=/ 一般用于网站的首页,我们都用精确匹配,一般是静态页面,也可以是发送到后端的动态页面。

2、处理静态文件的规则

3、一般匹配:

四、重定向:

nginx内置的变量:

flag的类型:


location匹配的规则和优先级

nginx匹配location和正则表达式结合使用

location匹配uri字符串标识

URL:www.baidu.com/test

在nginx中匹配就是/test这一部分

一、location分类:

1、精确匹配 locatin=/

匹配的字符要完全一致才会匹配到

2、正则匹配:location~区分大小写进行匹配

location^前缀匹配,匹配普通字符

location~*不区分大小写进行匹配

location!~对大小写的结果取反

location!~*不区分大小写的结果取反

3、一般匹配

location /test一般通用匹配

location / 通用匹配

二、locatoin匹配的优先级:

1、精确匹配(locatoin=)> 正则匹配(location^~)>(locatoin~~*)>带路径的通用匹配location /test>location/

匹配的原则:一旦命中不再继续匹配

在实际的网站中,如何配置location

三、三个必须选规则:

1、location=/ 一般用于网站的首页,我们都用精确匹配,一般是静态页面,也可以是发送到后端的动态页面。
2、处理静态文件的规则

两种规则:

1)以什么为开头的正则匹配

location^~ /static

2)匹配后缀名

location~*.(html|jpg|gif)

3、一般匹配:

location/{

proxy_pass转发.jsp或者.php的动态页面请求

}

三个规则是最少规则

四、重定向:

rewrite:作用就是结合正则表达式实现URI的重写已经定向(页面跳转)

rewrite:只能在server location if这三个位置之中

nginx内置的变量:

$uri:表示客户端请求的uri

$host:请求的主机名

$remote_port:客户端请求的端口

$remote_addr:客户端请求的IP地址

rewrite的语法:

rewrite<正则表达式><表示跳转后的内容>flag(标记位)

flag的类型:

1、redirect:临时重定向,返回302

2、permanent:永久重定向,301

3、break本条规则匹配完成之后即停止,不再匹配其他跳转规则,URI地址也不会发生变化

4、last本条规则匹配完之后。继续向下匹配新的location uri规则

rewrite /test/(.*) /ky01/$1 redirect

rewrite当前的捕获组(.*) $1表示捕获组,用于字符串中提取特定部分

www.baidu.com/test/page.1

/test/iindex.html

(.*)index.html

www.baidu.com/ky01/page.1

/ky01/index.html

nginx内部语法last方式,最多只能循环10次,超过之后会返回500错误码

rewrite和location似乎都可以实现页面跳转,rewrite的就是跳转到新的或者是更改获取指定资源的路径

location是控制访问,以及反向代理

基于域名的跳转:现在公司的旧域名www.kgc.com,页面变更,网页要换www.benet.com,旧域名还要能提供访问,但是域名要变更成新域名,而且保证参数不变

if ($host='www.kgc.com'){ rewrite ^/(.*)$ http://www.benet.com/$1 permanent ^/(. *)$ www.kgc.com/index.html www.benet.com/index.html

基于客户端ip地址进行跳转 今天公司业务新版上线,维护一下。除了前端开发参与调试工作可以打开页面,其他地址 统─跳转到维护页面。 只有公司: 192.168.233.61可以正常访问。其他的一律跳转到维护页面。

你可能感兴趣的:(nginx,笔记)