Apache 是否在每个连接上使用 TCP 端口?

fre*_*wra 1 port tcp apache-2.2

我们的系统管理员说

“Apache 在每个连接上使用一个 TCP 端口”

所以一个服务器可以同时服务 65534 (MAX) 个。这样对吗?

我认为 Apache 只使用 80 或 443。但是,他使用很多文件描述符(不是端口)不是吗?

/sbin/sysctl -a | grep fs.file-max

fs.file-max = 123456789
Run Code Online (Sandbox Code Playgroud)

是 max 我想你能给我一些关于它的信息吗?

Nat*_*man 5

我认为您的系统管理员对端口和文件描述符究竟是什么有点困惑。

每个服务器有 65536 个端口,编号0通过65535. 程序可以在端口上侦听来自客户端的请求并相应地处理它们。在任何给定时间,只有一个程序可以监听一个端口。在这方面,端口是一种有限的资源——尽管使用这些端口中的大多数是极其罕见的。

当客户端连接到服务器时,会为表示套接字的连接创建一个文件描述符。您可以像任何其他普通文件一样读取和写入此套接字。可用的文件描述符数量很大,但一个特定应用程序可以使用的文件描述符数量通常是有限的。

另外,应该注意的是,Apache 可以配置为同时侦听多个端口。