我一直在阅读有关nginx内部的内容,他们提到nginx主进程创建了几个工作进程,并且每个进程都等待同一端口上的连接。这是可能的fork,因为fd结构在进程之间共享。我不明白的是,如果它是如何工作的,那么在多个进程中accept(fd)
内是否会出现竞争条件?也许我对工人流程如何接受请求的理解不明确
答案 0 :(得分:2)
允许在同一个套接字上有多个侦听器(线程或进程){"id":6,"error":[1,"Not Available Now"]}
。一旦发起连接,一个(并且只有一个)保证从accept
呼叫返回。
在旁注中,您还可以让多个侦听器accept
使用相同的套接字(TCP-flavor recvfrom
,但这具有不确定的价值。)