根据这篇文章的说法,nginx有一个主进程和一些辅助进程。我试图了解nginx工作进程如何处理请求。nginx使用具有多侦听套接字和连接套接字的事件驱动架构。
通常,对于HTTP服务器,只有一个进程侦听端口80。对于一个新的连接,所有请求的数据将通过一个套接字(客户机-ip,客户机端口,服务器-ip,80)到达端口80,其中80是服务器端口。据我所知,您只能让一个进程侦听单个端口,那么这些请求如何被转发到nginx使用的所有其他端口?主进程是否通过端口80来回复制本地端口的所有请求和响应数据?
谢谢。
发布于 2017-09-13 20:20:32
每个NGINX工作进程都使用NGINX配置初始化,并由主进程提供一组侦听套接字。NGINX辅助进程从等待侦听套接字上的事件开始- 内Nginx体系结构辅助进程接受来自共享的“侦听”套接字- 开源项目的体系结构的新请求。
基本上,只有主服务器绑定到端口80 (或配置了任何端口)。它打开一堆unix域套接字,并与辅助进程共享套接字。因此,工作进程只是在一个循环中旋转,接受来自共享套接字的连接并处理它们。unix域套接字的特别之处在于它们可以用于共享打开的文件描述(即套接字),占用进程。
AFAIK --这不是对工作人员的主“复制”请求。工作进程从套接字直接打开HTTP连接,并读取请求。
https://softwareengineering.stackexchange.com/questions/357330
复制相似问题