源码安装的 nginx 卸载必须手动清理:先停止进程并确认端口释放,再删除主目录(如 /usr/local/nginx)、配置(/etc/nginx)、日志(/var/log/nginx)、缓存、服务文件及环境变量,最后验证 nginx -v 报错、路径不存在、端口无监听。

源码编译安装的 Nginx 没有包管理器记录,卸载必须手动逐项清理。重点不是删掉 nginx 二进制文件,而是把散落在系统各处的配置、日志、服务定义、环境变量和临时文件一并清除,否则重装容易冲突或占用磁盘。
停止运行中的 Nginx 并确认端口已释放
先确保没有残留进程干扰后续操作:
- 用
ps aux | grep nginx查看主进程,若有输出,记下 master 进程 PID,执行sudo kill -9 [PID] - 如果记得安装路径(如
/usr/local/nginx),可尝试sudo /usr/local/nginx/sbin/nginx -s stop - 运行
sudo lsof -i :80或sudo ss -tuln | grep ':80\|:443',确认无 nginx 占用 HTTP/HTTPS 端口
删除主安装目录及关联二进制文件
源码安装默认前缀通常是 /usr/local/nginx,但可能自定义。需先确认实际路径:
- 执行
which nginx或nginx -V 2>&1 | grep "prefix",输出中--prefix=后面即为根目录 - 删除整个安装目录:
sudo rm -rf /usr/local/nginx(替换成你查到的真实路径) - 检查并清理常见软链或复制位置:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx /usr/local/bin/nginx
清空独立存在的配置、日志与缓存目录
这些目录不会随主目录自动删除,是残留高发区:
- 配置目录:
sudo rm -rf /etc/nginx(若 configure 时指定过--conf-path=/etc/nginx/nginx.conf) - 日志目录:
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,确认后手动删除
移除系统服务与环境变量设置
若曾配置开机自启或全局调用,这些残留会影响新部署:
- 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、ls /var/log/nginx均应报 No such file or directory -
systemctl list-unit-files | grep nginx无输出,且sudo lsof -i :80无 nginx 相关监听











