背景说明
由于项目部署需要,自己将一个使用fasterAPI开发的接口服务程序部署在了Ubuntu系统服务器上,并使用nohup命令将该服务在后台挂起,从而显示运行的进程号。等待第二天需要优化代码重启服务的时候发现,根据自己的服务端口号去查询进程的时候发现居然有两个进程号,不知道是什么原因。
分析
在 Linux 系统中,一个端口对应两个进程号的情况可能是因为网络地址转换(NAT)或负载均衡器的使用。
1.NAT:在一些网络环境中,多个主机共享同一个公共 IP 地址。当请求到达公共 IP 地址上的某个端口时,NAT 设备会将请求转发给内部网络的不同主机。因此,一个端口可能会对应多个进程号,每个进程号对应一个内部主机。
2.负载均衡器:负载均衡器是一种用于分发网络请求的设备,它将请求分发给多个服务器,以实现负载均衡和高可用性。当负载均衡器接收到请求时,它会将请求转发给后端服务器集群中的某个服务器。因此,一个端口可能会对应多个进程号,每个进程号对应一个后端服务器。
在这两种情况下,由于请求被转发到多个不同的主机或服务器上,因此会出现一个端口对应多个进程号的情况。