原因:服务器端脚本(如PHP)语法错误、文件权限不足、磁盘空间耗尽或Nginx配置错误。
 解决方法:
sudo tail -n 50 /var/log/nginx/error.log;sudo php -l /path/to/script.php;sudo chown -R www-data:www-data /var/www/html(确保Nginx用户有访问权限);df -h查看磁盘使用情况,删除无用文件释放空间。原因:请求的URL路径错误、资源已被删除、Nginx配置中root或alias指令指向错误。
 解决方法:
/etc/nginx/sites-available/default)中的root指令,确保指向正确的网站目录(如/var/www/html);ls -l /var/www/html。原因:目录权限不足、Nginx配置中未启用index文件或autoindex关闭。
 解决方法:
sudo chmod -R 755 /var/www/html(允许其他用户读取);index指令:index index.html index.php;autoindex on;到location块中。原因:Nginx作为反向代理时,后端服务(如PHP-FPM、Node.js)未运行或无法连接。
 解决方法:
sudo systemctl status php-fpm(以PHP-FPM为例);proxy_pass或fastcgi_pass指令正确(如fastcgi_pass unix:/run/php/php-fpm.sock;);sudo systemctl restart php-fpm && sudo systemctl restart nginx。原因:上传文件大小超过Nginx或PHP的限制。
 解决方法:
nginx.conf中增加client_max_body_size 10M;(允许最大10MB上传);php.ini中调整post_max_size = 10M和upload_max_filesize = 10M;sudo systemctl restart nginx php-fpm。原因:后端服务器过载、维护或Nginx配置中limit_conn/limit_req限制触发。
 解决方法:
top或htop查看CPU、内存使用情况;return 503;并设置error_page;limit_conn_zone的大小或调整limit_req_zone的速率。原因:后端服务器处理请求时间超过Nginx设置的超时时间。
 解决方法:
location块中增加proxy_read_timeout 90;和proxy_send_timeout 90;(将超时时间延长至90秒);sudo systemctl restart nginx。原因:Nginx配置文件(如nginx.conf或站点配置文件)存在语法错误。
 解决方法:
sudo nginx -t(若显示“syntax is ok”,则配置正确);sudo systemctl restart nginx。原因:Nginx监听的端口(如80、443)已被其他服务(如Apache)占用。
 解决方法:
sudo lsof -i :80;sudo kill -9 [PID](替换为实际进程ID);/etc/apache2/ports.conf中的Listen 80改为Listen 8080)。原因:所有错误都需要通过日志定位根本原因。
 解决方法:
sudo tail -f /var/log/nginx/error.log(实时跟踪最新错误);sudo tail -f /var/log/nginx/access.log(了解请求详情);/var/log/php-fpm.log)进一步分析。