目录
1、location=/ 一般用于网站的首页,我们都用精确匹配,一般是静态页面,也可以是发送到后端的动态页面。
location匹配的规则和优先级
nginx匹配location和正则表达式结合使用
location匹配uri字符串标识
在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表示捕获组,用于字符串中提取特定部分
/test/iindex.html
(.*)index.html
/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可以正常访问。其他的一律跳转到维护页面。