源码安装的 Nginx 卸载需手动彻底清理:先停止进程并确认端口释放,再删除安装目录、配置(/etc/nginx)、日志(/var/log/nginx)、缓存等散落文件,移除 systemd/init.d 服务及环境变量,最后验证无残留。

源码安装的 Nginx 没有包管理器自动跟踪,卸载必须手动清理——重点不是删二进制文件,而是把散落各处的配置、日志、服务定义和环境变量一并清除。
停止并确认 Nginx 进程已退出
先确保没有运行中的实例,避免残留进程干扰清理:
- 执行 sudo /usr/local/nginx/sbin/nginx -s stop(若记得安装路径);如不确定路径,用 ps aux | grep nginx 找出主进程 PID,再 sudo kill -9 [PID] 强制终止
- 运行 lsof -i :80 或 lsof -i :443,确认无 nginx 占用端口
删除主安装目录及二进制文件
源码安装默认路径通常是 /usr/local/nginx,但也可能自定义(如 /opt/nginx 或 /soft/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(常见软链或复制位置)
清空配置、日志与缓存目录
这些目录不随主目录删除,常独立存在:
- 配置目录: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 脚本(旧版 CentOS/RHEL):sudo rm -f /etc/init.d/nginx,并执行 sudo chkconfig nginx off
- 环境变量:检查 ~/.bashrc、~/.zshrc 或 /etc/profile 中是否含
export PATH=...:/usr/local/nginx/sbin,删掉对应行并 source ~/.bashrc
验证是否清理干净
执行以下命令,全部应无输出或报错:
-
nginx -v → 提示
command not found -
ls /usr/local/nginx →
No such file or directory - ls /etc/nginx、ls /var/log/nginx → 同样报错
- systemctl list-unit-files | grep nginx → 无返回
- find / -name "*nginx*" -type d 2>/dev/null | head -10 → 快速扫一遍关键路径,确认无业务相关残留


















