错误日志是定位Nginx问题的核心线索,默认路径为/var/log/nginx/error.log。使用以下命令实时查看最新错误信息(需root权限):
sudo tail -f /var/log/nginx/error.log
通过日志中的关键字(如“Permission denied”“Connection refused”“upstream prematurely closed connection”),可快速定位错误类型(如权限问题、端口冲突、后端服务异常)。
配置文件语法错误会导致Nginx无法启动或重载。默认主配置文件为/etc/nginx/nginx.conf,站点配置文件通常位于/etc/nginx/sites-available/。使用以下命令测试配置语法:
sudo nginx -t
若输出显示“syntax is ok”和“test is successful”,则配置正确;若存在错误,需根据提示修改对应配置文件(如nginx.conf或站点配置文件),修复后再次测试。
通过以下命令检查Nginx服务运行状态:
sudo systemctl status nginx
sudo systemctl restart nginx;Nginx默认监听**80(HTTP)和443(HTTPS)**端口,端口被占用会导致服务无法启动。使用以下命令检查端口占用情况:
sudo netstat -tuln | grep -E ':80|:443'
若端口被其他进程占用(如Apache),需停止占用进程或修改Nginx配置文件中的listen指令(如将端口改为8080)。
同时,确保防火墙允许HTTP/HTTPS流量:若使用UFW防火墙,执行以下命令:
sudo ufw allow 'Nginx Full'
若使用iptables,需开放对应端口。
Nginx进程通常以www-data用户身份运行,需确保其对网站根目录及文件有读取权限。假设网站根目录为/var/www/html,使用以下命令设置权限:
sudo chown -R www-data:www-data /var/www/html # 修改所有者和组
sudo find /var/www/html -type d -exec chmod 755 {} \; # 目录权限设为755
sudo find /var/www/html -type f -exec chmod 644 {} \; # 文件权限设为644
若权限不足,可能导致“403 Forbidden”错误。
若Nginx作为反向代理,需确保后端服务(如PHP-FPM、Node.js、Tomcat)正常运行且端口可达。例如,检查PHP-FPM状态:
sudo systemctl status php7.4-fpm # 根据PHP版本调整命令
若后端服务未启动,需启动服务:sudo systemctl start php7.4-fpm。
同时,检查Nginx配置文件中proxy_pass指令的端口是否正确(如proxy_pass http://127.0.0.1:9000;需与PHP-FPM监听端口一致)。
高并发场景下,系统资源不足(如CPU、内存耗尽)可能导致Nginx响应缓慢或崩溃。使用以下命令实时监控资源使用情况:
top # 查看CPU、内存占用排名
htop # 更直观的资源监控工具(需安装:sudo apt install htop)
若资源占用过高,需优化Nginx配置(如调整worker_processes为CPU核心数、增大worker_connections)或升级服务器配置。
proxy_pass指令的正确性,以及proxy_connect_timeout(连接超时时间)、proxy_read_timeout(读取超时时间)等参数设置。deny all指令。client_max_body_size(如client_max_body_size 20M;)。