操作命令:sudo tail -f /var/log/nginx/error.log(实时查看最新错误)或 sudo cat /var/log/nginx/error.log(查看完整日志)。
作用:错误日志是定位Nginx问题的核心依据,能直接提示错误类型(如端口占用、配置语法错误、权限不足等)及具体原因。
操作命令:sudo nginx -t(测试配置文件语法)。
作用:若配置文件存在语法错误(如括号未闭合、指令拼写错误),命令会明确提示错误位置(如nginx.conf或站点配置文件的行号),需根据提示修复后重新加载配置。
常见场景:Nginx启动失败时,日志常提示bind() to 0.0.0.0:80 failed (98: Address already in use)(80端口被占用)。
操作步骤:
sudo netstat -tulnp | grep :80 或 sudo ss -tulnp | grep :80;sudo kill -9 <PID>(替换为实际进程ID);/etc/nginx/sites-available/default,将listen 80;改为listen 8080;,然后测试并重启Nginx。操作命令:sudo systemctl status nginx。
作用:快速判断Nginx是否正在运行(显示active (running)为正常),若未运行可尝试启动:sudo systemctl start nginx;若启动失败,结合日志进一步排查。
常见场景:访问网站时出现403 Forbidden错误(权限不足)。
操作步骤:
www-data)对网站根目录有读取权限:sudo chown -R www-data:www-data /path/to/website(替换为实际网站路径);755、文件权限为644:sudo find /path/to/website -type d -exec chmod 755 {} \;;sudo find /path/to/website -type f -exec chmod 644 {} \;。404 Not Found:
原因:请求的URL无匹配的server块或location块,或文件路径错误。
解决方法:检查Nginx配置中的server_name、root指令及文件路径是否正确。
413 Request Entity Too Large:
原因:上传文件大小超过client_max_body_size限制(默认1MB)。
解决方法:在nginx.conf的http块或站点配置中添加:client_max_body_size 10M;(根据需求调整),然后测试并重载配置。
500 Internal Server Error:
原因:服务器内部错误(如PHP脚本语法错误、磁盘空间不足)。
解决方法:查看Nginx错误日志(/var/log/nginx/error.log)和后端服务日志(如PHP-FPM的/var/log/php7.4-fpm.log),定位具体错误。
502 Bad Gateway/503 Service Unavailable:
原因:后端服务(如PHP-FPM、Node.js)未运行或响应超时。
解决方法:
sudo systemctl status php7.4-fpm(根据实际版本调整);sudo systemctl restart php7.4-fpm;proxy_read_timeout 60s;)。常见场景:无法通过HTTP(80端口)或HTTPS(443端口)访问网站。
操作命令:
sudo ufw status;sudo ufw allow 'Nginx Full'(或分别执行sudo ufw allow 80/tcp、sudo ufw allow 443/tcp);sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT。适用场景:以上方法均无法解决问题(如配置文件损坏、Nginx二进制文件异常)。
操作步骤:
sudo apt-get remove --purge nginx;sudo apt-get autoremove;sudo apt-get update && sudo apt-get install nginx;