源码安装的 nginx 卸载必须手动彻底清理:先停止进程并确认端口释放,再删除安装目录、/etc/nginx、/var/log/nginx 等散落文件,移除 systemd/init.d 服务及环境变量,最后验证 nginx -v 报错、路径不存在、端口无监听。

源码安装的 Nginx 没有包管理器跟踪,卸载必须手动逐项清理——重点不是删掉 nginx 二进制文件,而是把散落在各处的配置、日志、服务定义、环境变量和临时文件全部清除干净。
停止并确认所有 Nginx 进程已退出
避免残留进程干扰后续清理:
- 用
ps aux | grep nginx查看是否有运行中的主进程或 worker 进程 - 若知道安装路径(如
/usr/local/nginx),执行sudo /usr/local/nginx/sbin/nginx -s stop - 若不确定路径,先用
nginx -V 2>&1 | grep "prefix"或which nginx定位;再根据查到的 PID 执行sudo kill -9 [PID] - 运行
sudo lsof -i :80和sudo lsof -i :443,确认端口未被占用
删除主安装目录及散落的二进制文件
源码默认安装路径通常是 /usr/local/nginx,但可能自定义(如 /opt/nginx):
- 通过
nginx -V 2>&1 | grep "prefix"确认实际--prefix=路径 - 执行
sudo rm -rf /usr/local/nginx(替换成你查到的真实路径) - 检查并清理常见软链接或复制位置:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx - 运行
which nginx,若仍有输出,说明 PATH 中还存在旧路径,需进入下一步处理
清空配置、日志、缓存等独立目录
这些目录不会随主目录自动删除,是重装冲突和磁盘占用的常见源头:
- 配置目录:
sudo rm -rf /etc/nginx(若 configure 时指定过--conf-path) - 日志目录:
sudo rm -rf /var/log/nginx - 缓存与临时文件:
sudo rm -rf /var/cache/nginx /var/lib/nginx /usr/local/var/run/nginx* - 检查用户级残留:
find ~ -name "*nginx*" -type d 2>/dev/null,人工确认后删除
移除系统服务与环境变量
否则新装 Nginx 可能无法注册服务,或命令行仍能调用旧版本:
- systemd 服务:
sudo systemctl disable nginx→sudo rm -f /etc/systemd/system/nginx.service→sudo systemctl daemon-reload - init.d 脚本(旧系统):
sudo rm -f /etc/init.d/nginx→sudo chkconfig nginx off - 环境变量:在
~/.bashrc、~/.zshrc或/etc/profile中搜索nginx或/usr/local/nginx,删掉对应export PATH=...行,然后执行source ~/.bashrc
验证是否彻底清理干净
三项检查缺一不可,建议每步清理后快速验证一次:
-
nginx -v应返回 command not found -
ls /usr/local/nginx应提示 No such file or directory -
sudo ss -tuln | grep ':80\|:443'输出中不应出现nginx - 可选补充:
sudo find / -name "*nginx*" 2>/dev/null | grep -v "Permission denied",对非关键路径残留酌情判断是否删除











