为什么 lsof 显示多个 nginx 都在 “使用 443”?

因为 lsof -i :443 不仅显示"谁在监听",还显示"谁在使用这个端口通信"。

✅ 核心原理:Nginx 的多进程架构

Nginx 是 master-worker 模型

类型 数量 职责 是否监听端口
Master 进程 1 个(如 PID 1734) 管理配置、启动 worker、监听端口 ✅ 监听
Worker 进程 多个(如 2707653, 2707654...) 处理客户端请求 ❌ 不"重新"监听,而是继承 master 的监听套接字

🔔 重点:只有 master 进程(或第一个 worker)会"绑定并监听"端口,后续 worker 是通过共享套接字来处理连接的。

✅ 验证方法

你可以用下面命令确认哪个 PID 是主进程:

perl 复制代码
bash
深色版本
ps aux | grep nginx

输出类似:

yaml 复制代码
bash
深色版本
root      1734  0.0  0.1  123456  7890 ?  Ss   10:00   0:00 nginx: master process /usr/sbin/nginx
www-data 2707653  0.0  0.2  123456  8901 ?  S    10:05   0:00 nginx: worker process
www-data 2707654  0.0  0.2  123456  8902 ?  S    10:05   0:00 nginx: worker process
  • master process 是真正绑定端口的那个。
  • worker process 只是处理请求。

✅ 总结

PID 角色 是否导致 address already in use 原因
1734 (master) 主进程,LISTEN ✅ 是 它绑定了 443 端口
2707653+ (worker) 工作进程,ESTABLISHED ❌ 否 它只是在处理已有连接,不"重新监听"

🔑 所以我只强调 PID 1734,是因为它是真正导致端口冲突的源头。终止它(或整个 Nginx 服务),就能释放 443 端口,让 Docker 成功绑定。

相关推荐
数智工坊2 小时前
Zotero自建Ubuntu WebDAV附件同步方案(完美解决存储空间不足)
linux·运维·ubuntu
ltl3 小时前
HTTP/3 实战:从 QUIC 到 H3 的完整请求链路
linux
ltl3 小时前
POSIX 文件锁:flock、fcntl 与 NFS 上的工程陷阱
linux
ltl4 小时前
CUDA 生态:cuBLAS、cuDNN、NCCL、Triton、CUTLASS
linux
饺子大魔王的男人4 小时前
CentOS部署Cockpit:图形化查看系统、日志与服务状态
linux·运维·centos
不会就选b4 小时前
Linux之信号(二)
linux·运维·服务器
我是小灰灰吖5 小时前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
GlueNa2SiO35 小时前
第十八章 Linux故障排查与恢复
linux·服务器·笔记·学习
寺中人6 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手
linux·运维·服务器·shell·linux 命令·linux 基础教程·linux 入门
小张成长计划..6 小时前
【Linux】18:基础IO
linux·运维·服务器