Nginx很多人都知道可以用来做反向代理和负载均衡。但实际上Nginx可以做的远不止这些。
假如你们公司正在做微服务拆分,在微服务系统功能稳定之前,老系统和微服务系统需要并存,那么怎么实现流量控制,将一部分流量转发到微服务系统上面去,一部分流量路由到老系统上去呢?我可以告诉你的是,使用Nginx+Lua脚本就可实现这个功能。
又假如你们公司想搭建一个灰度环境,目标是将灰度名单里的用户发送的请求路由到灰度环境上去,使用Nginx也是可以轻松实现的。
再比如,你们公司想做一个秒杀活动,但是Tomcat撑不住,量一上来就挂,在不扩容的情况下如何提高并发量呢?这个时候就可以将一些并发量大的业务逻辑搬到Nginx上面去,这也是可以做到的。
其他诸如缓存、限流、代理等等,更是Nginx的强项了,这里就不再多说。
以上种种在我司都有应用,所以我强烈建议从事web开发特别是后端开发的朋友一定要学习下Nginx。对了,Nginx的高级功能大多数需要用到Lua脚本,如果想将Nginx的功能发挥到极致的话,Lua脚本也是必不可少的。