二进制安装的 nginx 卸载需分五步:1. 停进程并验端口;2. 删主安装目录;3. 清环境变量与 systemd 服务;4. 扫描清除零散残留;5. 验证命令、路径、端口均不可见。

二进制安装(即源码编译安装)的 Nginx 没有包管理器参与,卸载不能靠一条命令完成,但只要按路径逻辑清理,其实很直接——核心是删安装目录、清环境变量、停进程、验端口。
1. 停止并确认无运行进程
先确保 Nginx 不在运行,避免文件被占用:
- 执行 sudo nginx -s stop(若配置了信号路径)或 sudo pkill nginx
- 用 ps aux | grep nginx 检查是否还有残留进程,有则 sudo kill -9 [PID]
- 再用 sudo lsof -i :80 或 sudo ss -tuln | grep ':80\|:443' 确认端口已释放
2. 删除主安装目录
源码安装默认路径通常是 /usr/local/nginx,但也可能是你 configure 时指定的其他路径(如 --prefix=/opt/nginx)。需先确认:
- 运行 which nginx 查看二进制位置,再用 readlink -f $(which nginx) 追溯到真实路径
- 常见安装根目录还有:/opt/nginx、/usr/local/nginx、/srv/nginx
- 确认后执行:sudo rm -rf /usr/local/nginx(替换成你实际路径)
3. 清理环境变量与启动项
很多人忽略这点,导致卸载后仍能执行 nginx -v:
- 检查 shell 配置文件:grep -n "nginx\|local.*nginx" ~/.bashrc ~/.bash_profile ~/.profile /etc/profile 2>/dev/null
- 删掉类似
export PATH=/usr/local/nginx/sbin:$PATH的行 - 执行 source ~/.bashrc(或对应文件),再用 echo $PATH 验证路径已移除
- 若曾注册为 systemd 服务,删掉:sudo rm -f /etc/systemd/system/nginx.service,并运行 sudo systemctl daemon-reload
4. 扫描并清除零散残留
二进制安装虽不写注册表或 RPM 数据库,但可能留痕于日志、缓存或用户目录:
- 删默认日志与临时目录:sudo rm -rf /usr/local/var/log/nginx /usr/local/var/run/nginx*
- 清理构建残留(可选):rm -rf ~/nginx-* /tmp/nginx* /usr/src/nginx-*
- 全局搜残留二进制:sudo find / -name "nginx" -type f -executable 2>/dev/null,逐个确认删除
- 检查用户级配置:ls -la ~ | grep nginx,删掉
~/.nginx或~/nginx.conf(如有)
5. 最终验证是否干净
三项必须全部通过才算真正卸载完成:
-
nginx -v → 返回
command not found -
ls /usr/local/nginx(或你安装路径)→
No such file or directory - sudo ss -tuln | grep ':80\|:443' → 无 nginx 相关输出











