首先检查Nginx是否正在运行,使用以下命令查看服务状态:
systemctl status nginxservice nginx statussystemctl start nginx或service nginx start);若启动失败,直接进入查看错误日志步骤(日志是排查服务问题的核心线索)。Nginx的错误日志记录了运行时故障的详细信息,是排查问题的“指南针”。默认路径为/var/log/nginx/error.log,使用以下命令实时查看最新错误:
sudo tail -f /var/log/nginx/error.log
常见错误示例及初步判断:
Address already in use:端口冲突(如80/443端口被其他服务占用);Permission denied:Nginx用户(通常为www-data或nginx)无权限访问文件/目录;syntax error:配置文件存在语法错误(如指令拼写错误、缺少分号)。配置文件错误是Nginx无法启动或重载的常见原因。使用以下命令测试配置文件语法:
sudo nginx -t
若输出Syntax OK,说明配置正确;若报错(如unknown directive "xyz"),需根据提示定位错误位置(通常在nginx.conf或/etc/nginx/sites-available/下的虚拟主机配置文件中),修正拼写或模块加载问题后重新测试。
确保Nginx监听的端口(如80、443)未被占用,且防火墙/安全组允许外部访问:
sudo netstat -tulnp | grep nginx或sudo ss -tulnp | grep nginx;sudo ufw allow 80/tcp;服务器资源不足(如内存耗尽、磁盘空间满)可能导致Nginx崩溃或响应缓慢:
top(CPU/内存)、free -m(内存剩余)、df -h(磁盘空间);/var/log/nginx/)或大文件;若内存不足,调整Nginx的worker_processes(设置为CPU核心数)或增加服务器资源。若Nginx作为反向代理(如代理PHP-FPM、Node.js、Java后端),需确保后端服务正常运行:
systemctl status php-fpm;/var/log/php-fpm.log),确认其是否监听正确端口(如listen = 127.0.0.1:9000)且能处理请求。访问日志(默认路径/var/log/nginx/access.log)记录了客户端请求的详细信息(URL、IP、状态码、响应时间),可辅助判断问题类型:
sudo tail -f /var/log/nginx/access.log;404 Not Found:检查location配置或文件路径是否正确;500 Internal Server Error:查看错误日志中的脚本错误(如PHP语法错误);502/504 Bad Gateway/Timeout:检查后端服务是否响应或超时(调整proxy_read_timeout)。chmod 755 /var/www/html);proxy_pass指向的地址是否正确;client_max_body_size(如client_max_body_size 10M),并同步调整PHP的post_max_size和upload_max_filesize。