我们经常会听到有人问什么是Nginx的问题。Nginx它指的是一个完整的代理请求过程,它是客户端第一步要连接代理服务器,进而再根据代理服务器使用的代理协议要求连接或者获取目标服务器的指定资源。事实上Nginx在同类网络服务器中它的并发性能比较好,代理就是位于网络客户端以及网络服务器之间的一个中间现线人。下面我们就详细为您阐述一下什么是Nginx?Nginx如何处理请求?Nginx典型应用场景是什么?希望可以帮助到您。
代理服务器是客户端和网络服务器之间的另一个服务器。实际上nginx在同类网络服务器中的并发性非常好。代理商:通常局域网中的机器通过代理商向因特网发送所需的服务器,代理商通常在客户端使用。一个完整的代理请求过程是客户端首先连接代理服务器,然后根据代理服务器使用的代理协议要求连接或获取目标服务器的指定资源。网络代理是网络的中间实体。代理位于网络客户端和网络服务器之间,起着中间人的作用。HTTP代理服务器是网络服务器,也是网络客户端。
nginx当然也可以作为客户机要求其他server的数据。这时,与其他server创建的连接也被封装在ngx_connection_t中。当nginx实现时,通过连接池进行管理。
一、Nginx如何处理请求?
首先,启动nginx时,分析配置文件,获取需要监视的端口和ip地址,在nginx的master过程中初始化socket(创建socket,设置addreuse等选项,绑定到指定的ip地址端口和listen)fork创建的新过程称为子过程)创建多个子过程,然后与accept进行新连接。这时,客户机可以启动与nginx的连接。
nginx当然也可以作为客户机要求其他server的数据。这时,与其他server创建的连接也被封装在ngx_connection_t中。如果没有堵塞,为socket设置属性。在连接之后,添加读写事件,调用ct/read/write,并在连接结束时释放ngx_connection_t。
当nginx实现时,通过连接池进行管理。每个工人过程都有一个独立的连接池,并且工人连接量很大。连接池中保存的并非真正的连接,而是worker_connections大小的ngx_contiont结构。与此同时,nginx将所有闲置的ngx_connections保存在一个链上的free_ction_t中。每获得一次连接,从空闲连接表中取出一次,放回空闲连接表使用。
另外,这个值是指每个工人在工作过程中能够建立的最大连接数,所以nginx能够建立的最大连接数,应该是工人*工人_connections。这里提到的当然是最大连接数,对于HTTP请求本地资源,可以支持的并发数上限是worker_conections*worker_proceseseseseses,如果使用HTTP作为反向代理,则上限是worker_conner_prorker_prorkes/2。因为每个并发器与客户建立连接,所以占用了两个。
二、Nginx典型应用场景
在现有网络结构的基础上,负载平衡技术为扩大网络设备和服务器的带宽、增加吞吐量、增强网络数据处理能力、提高网络灵活性和可用性提供了廉价、高效、透明的方法。
其内容包括两个方面:一是在多个节点设备上分配大量并发访问或数据流,以减少用户等待响应的时间。二是在多个节点设备上分配单个负载,每个节点设备处理后总结处理结果,返回给用户,大大提高了系统的处理能力。
以上我们为大家分享了什么是Nginx的问题,也回答了大家比较关心的Nginx如何处理请求以及Nginx典型应用场景的问题,如果您想了解更多相关信息,请您继续关注中培教育。