除了负载均衡,Nginx还可以做很多,限流、缓存、黑白名单等
大家好,我是磊哥。
可以说,Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。
一、静态代理
Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,性能更好。
二、负载均衡
Nginx通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。常用的负载均衡策略有
1、轮询
将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。
2、加权轮询
3、ip_hash(源地址哈希法)
4、随机
通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。
5、least_conn(最小连接数法)
三、限流
Nginx的限流模块,是基于漏桶算法实现的,在高并发的场景下非常实用。
1、配置参数
limit_req_zone定义在http块中,$binary_remote_addr 表示保存客户端IP地址的二进制形式。
Rate定义最大请求速率。示例中速率不能超过每秒100个请求。
2、设置限流
burst排队大小,nodelay不限制单个请求间的时间。
四、缓存
1、浏览器缓存,静态资源缓存用expire。
2、代理层缓存
五、黑白名单
1、不限流白名单
2、黑名单
好了,上面就是nginx几个常用功能,静态分离、负载均衡、限流、缓存、黑白名单等,你都了解了吗?
近期技术热文
1、Log4j2的异步性能已经无敌了,还不快试试
2、面试官:Maven 的这 7 个问题你思考过没有?
3、开源一个SpringBoot + Mybatis + Vue的代码生成器
4、吊炸天的 Docker 图形化工具:Portainer 推荐
第3版:互联网大厂面试题
包括 Java 集合、JVM、多线程、并发编程、设计模式、算法调优、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!
阅读原文: 高清 7701页大厂面试题 PDF