Debian10系统下Nginx 1.14.2启动失败报端口绑定错误如何修复?
故障排查与修复方案
一、基础命令(如echo)无法执行问题排查
- 先排查磁盘占用情况
- 执行
df -h查看根分区(/挂载点)的块使用率,如果使用率为100%,清理无用文件:- 清理apt缓存:
apt clean - 清理系统日志:
journalctl --vacuum-size=100M - 手动删除不再需要的备份包、大日志文件
- 清理apt缓存:
- 执行
df -i查看根分区的inode使用率,如果使用率为100%,清理磁盘上的大量小文件,比如旧的临时文件、session缓存文件
- 执行
- 排查环境变量异常
执行echo $PATH,确认输出包含/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,如果有缺失,临时修复执行:
后续再排查export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin~/.bashrc、/etc/profile等全局和用户级配置文件是否被错误修改 - 排查内存占用情况
执行free -h查看可用内存,如果剩余内存不足,结束无关的高占用进程,必要时可新增swap分区缓解内存压力
二、Nginx启动失败问题修复
报错核心原因是80端口被其他进程占用,按以下步骤处理:
- 查找占用80端口的进程
执行ss -tulpn | grep :80,输出结果中会显示占用端口的进程PID和对应的程序名称 - 处理占用端口的进程
- 如果是Apache、Caddy等其他不需要的Web服务占用:执行
systemctl stop <服务名> && systemctl disable <服务名>停止并禁用该服务 - 如果是挂死的旧Nginx进程占用:执行
kill -9 <查到的进程PID>结束所有异常Nginx进程 - 如果是正常业务程序需要占用80端口:可修改Nginx配置文件(
/etc/nginx/nginx.conf或对应站点配置文件)中的listen 80为其他未被占用的端口(如8080),也可根据需求修改业务程序的监听端口
- 如果是Apache、Caddy等其他不需要的Web服务占用:执行
- 验证Nginx配置合法性
执行nginx -t,提示syntax is ok和test is successful则说明配置无语法错误 - 启动Nginx并验证状态
执行systemctl start nginx启动服务,再执行systemctl status nginx确认服务状态为active (running)即修复完成
如需设置开机自启,可额外执行systemctl enable nginx
内容的提问来源于stack exchange,提问作者Mikołaj Wittbrodt
相关产品推荐
相关产品推荐

