Web中间件最大的作用就是负责对请求进行分发,也就是我们常说的起到负载均衡,当然负载均衡只是Nginx的作用之一。
1.负载均衡的策略
常见的负载均衡策略一般包括轮询、指定权重(weight)、ip_hash、least_conn、fair、url_hash等六种。
轮询:请求会按照接收到的顺序,依次轮询地转发给不同的服务器
指定权重:一般用于后端应用程序服务器硬件配置差异大而导致承受的访问压力不一样的情况下。权重越大,处理的请求越多。
ip_hash:每个请求按原始访问ip的hash结果来进行请求转发。
least_coon:Nginx在接收到请求后会把请求转发给连接数较少的后端应用程序服务器。
另外两种需要安装相应的插件。
2.进程数的配置与调优
Nginx服务启动后会包括两个重要的进程:
master进程:可以控制Nginx服务的启动、停止、重启、配置文件的重新加载。
worker进程:处理用户请求信息,将收到的用户请求转发到后端应用服务器上。
worker进程的数量一般建议等于CPU的核数或者CPU核数的两倍。通过执行lscpu命令可以获取到CPU的核数。
3.事件处理模型
Linux一般用IO多复路模型,其实就是异步非阻塞的方式。
采用异步非阻塞说的其实是线程调用操作系统内核
同步请求:A调用B,B的处理是同步的,在处理完之前他不会通知A,只有处理完之后才会明确的通知A;
异步请求:A调用B,B的处理是异步的,B在接到请求后先告诉A我已经接到请求了,然后异步去处理,处理完之后通过回调等方式再通知A。
阻塞请求:A调用B,A一直等着B的返回,别的事情什么也不干;
非阻塞请求:A调用B,A不用一直等着B的返回,先去忙别的事情了。
4.连接数的调优
在高并发的请求调用中,连接数有时候很容易成为性能的一个瓶颈。可以通过单个进程允许客户的最大连接数来调整。
5.如何监控
Nginx自带了监控模块,但是需要在Nginx编译安装时指定安装监控模块。
本文暂时没有评论,来添加一个吧(●'◡'●)