谈谈哪些你负责的应用场景中,哪些用到了Nginx rewrite模块,是怎么应用的?
题目解析:
我们知道Rewrite模块实现把请求的url地址作重写、重定向到其他url。工作中有很多场景都需要应用到rewirte规则,你来介绍下你们公司对于rewirte规则应用。
核心知识点:
第4章、深度学习篇 -rewrite规则
例:
Nginx经常应用于入口层web代理服务,当网站进行重大升级变更时候,为了保证后台数据不受变更影响同时给用户更佳的访问体验,经常需要变更前切换网站访问页面到一个临时页面。
停服割接需要入口层把入口的流量切换到维护页面。通过rewirte配置第一种方式如下:
rewrite ^(.*)$ /maintain.html break;
第二种rewrite 的配置规则把所有的请求路径都交给你的维护页面去响应,而不会直接给到你的逻辑层程序,如下:
location / {
access_by_lua_block {
if ngx.var.remote_addr != "221.219.97.238" then
return ngx.redirect('http://www.jesonc.com/maintain.html',302);
end
}
proxy_pass http://local;
}
第 2 种方式借助了 lua,相比第 1 种方式,这种方式更加灵活。