当Nginx启动或重启时,若报错提示端口已被占用(如80、443端口),需排查冲突来源并解决:
sudo netstat -tulnp | grep ':80'(或替换为443)命令,查看占用端口的进程ID(PID)及名称(如Apache、Docker等)。sudo systemctl stop <进程名称>(如sudo systemctl stop apache2)停止该服务;/etc/nginx/nginx.conf或/etc/nginx/sites-enabled/下的站点配置),将listen指令改为其他端口(如listen 8080;),保存后测试配置并重启Nginx。修改Nginx配置后,若重启失败或测试时报语法错误,需通过以下步骤排查:
sudo nginx -t命令,Nginx会返回具体错误位置(如文件名、行号)及错误类型(如缺少分号、括号不匹配)。/etc/nginx/sites-available/default),修复语法问题(如补充分号、调整缩进)。sudo systemctl reload nginx(或sudo service nginx reload)使配置生效,无需中断正在处理的请求。当访问网站时出现403错误或日志中提示权限不足,需调整用户权限:
/etc/nginx/nginx.conf,检查user指令(Ubuntu默认为www-data,如user www-data;)。/var/www/html或自定义路径)的所有者设为Nginx用户,并赋予读写权限:sudo chown -R www-data:www-data /var/www/html # 替换为实际网站目录
sudo chmod -R 755 /var/www/html # 确保目录可读可执行
修改Nginx配置(如站点域名、端口、反向代理)后,若未生效,需检查以下环节:
/etc/nginx/sites-available/,需通过符号链接到/etc/nginx/sites-enabled/目录才能激活(如sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/)。sudo nginx -t测试语法,再通过sudo systemctl restart nginx(或reload)重启服务,确保新配置加载。当访问网站时出现500错误,需通过日志定位具体原因:
sudo tail -50 /var/log/nginx/error.log命令查看最近错误记录(日志路径可在nginx.conf中通过error_log指令自定义)。df -lh命令检查磁盘占用,若/分区使用率接近100%,需清理无用文件(如日志、缓存)或扩容磁盘;ulimit -HSn 102400(仅当前终端有效);/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535;nginx.conf的worker_processes下方添加worker_rlimit_nofile 65535;。Nginx的日志文件是排查问题的重要依据,需了解其位置及使用方法:
/var/log/nginx/access.log(记录客户端请求信息,如IP、请求路径、状态码);/var/log/nginx/error.log(记录启动、运行错误,如配置错误、权限问题)。server或location块中通过access_log和error_log指令修改路径及格式(如access_log /var/log/nginx/mysite_access.log combined;)。sudo tail -f /var/log/nginx/error.log命令实时监控错误日志,便于快速响应问题。