源码安装的 Nginx 卸载必须手动彻底清理:先停止进程并确认端口释放,再删除安装目录、/etc/nginx、/var/log/nginx 等散落文件,移除 systemd/init.d 服务及环境变量,最后通过 nginx -v、目录检查和端口监听三重验证无残留。

源码编译安装的 Nginx 没有包管理器跟踪,卸载必须手动逐项清理——重点不是删掉 nginx 二进制文件,而是清除散落在系统各处的配置、日志、服务定义和环境变量。漏掉任意一项都可能造成重装失败、端口冲突或磁盘占用异常。
先停服务并确认无残留进程
避免清理过程中服务仍在运行,导致文件被占用或端口未释放:
- 用
ps aux | grep nginx查看是否还有主进程;若有,执行sudo /usr/local/nginx/sbin/nginx -s stop(路径以你实际--prefix为准) - 若不确定安装路径,先运行
nginx -V 2>&1 | grep "prefix",输出中--prefix=后面就是根目录 - 再用
sudo lsof -i :80或sudo ss -tuln | grep ':80\|:443'确认 80/443 端口已无 nginx 监听
删主安装目录和关键散落路径
源码安装默认前缀多为 /usr/local/nginx,但务必按 nginx -V 结果操作,不要盲目删除:
- 删除主目录:
sudo rm -rf /usr/local/nginx(替换成你查到的实际--prefix路径) - 清理常见软链或复制位置:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx - 清空配置目录:
sudo rm -rf /etc/nginx(若 configure 时指定过--conf-path=/etc/nginx/nginx.conf) - 清空日志与缓存:
sudo rm -rf /var/log/nginx /var/cache/nginx /var/lib/nginx - 检查用户级残留:
find ~ -name "*nginx*" -type d 2>/dev/null,确认后手动删除
移除系统服务和环境变量
曾配置开机自启或全局调用的,这些残留会干扰后续部署:
- 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中是否有export PATH=.../nginx/sbin,删掉对应行,并source ~/.bashrc
验证是否彻底卸载
三项检查全部通过才算干净:
-
nginx -v应提示 command not found -
ls /usr/local/nginx和ls /etc/nginx都应报 No such file or directory -
sudo lsof -i :80或sudo ss -tuln | grep ':80'无任何输出


















