文档

Nginx网站常见问题排查

更新时间:
一键部署

概述

本文主要介绍使用阿里云ECS实例搭建Nginx网站时,遇到的一些常见问题的处理方法。

详细信息

说明

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请根据现场实际情况,选择以下对应的解决方案。

Nginx网站无法打开

检查Nginx是否正常启动

登录服务器里执行命令,查看网站80、443端口是否监听启动。

netstat -nltp |grep -E '80|443'

执行命令,查看Nginx进程是否运行。

ps aux |grep nginx #CentOS/Alinux系统里进程名是nginx 

启动Nginx服务

如果Nginx没有启动,执行命令启动Nginx。

systemctl start nginx.service #CentOS/Alinux系统

检查安全组和防火墙规则

  1. ECS控制台检查安全组规则是否放行了80、443端口访问。

    1. 登录ECS管理控制台

    2. 在左侧导航栏,单击“实例与镜像” > “实例”

    3. 在“实例列表”中找到对应ECS实例,点击ECS实例名称进入到实例管理页面。

    4. 在“安全组”选项中,查看入方向安全规则。

  2. 在服务器里执行命令,查看是否设置iptables 防火墙规则。

iptables -nL

Nginx网站访问4xx/5xx错误

Nginx网站访问403错误

  1. 检查网站目录的文件权限,Nginx是否有权限读写网站文件。

    站点目录可以通过nginx配置文件,查看文件中<location>下的信息,确认站点目录。

    cat /etc/nginx/nginx.conf

    执行命令查看站点目录/var/www/html/(替换为您查询到的站点目录) 的权限,一般权限为755。

    stat /var/www/html/

    执行命令,查看站点目录里边网站文件的权限,一般权限为644。

    ls -l /var/www/html/

2. 检查nginx配置文件,查看站点目录是否设置了拒绝访问。

  • CentOS/Alinux系统默认配置文件。

    • /etc/nginx/nginx.conf

    • /etc/nginx/vhosts/*.conf

  • 查看配置文件中<location> 部分的配置,是否配置了 Deny *** 拒绝访问。

  1. 检查网站首页文件是否存在。

    CentOS/Alinux系统中,查看配置文件nginx.conf 中 <location> 配置的index,默认首页一般为 index.html 或者index.php。

Nginx网站访问404错误

  1. 检查Nginx配置文件中vhosts部分站点目录配置是否正确,域名绑定是否正确。

    • CentOS/Alinux系统默认配置文件。

      • /etc/nginx/nginx.conf

      • /etc/nginx/vhosts/*.conf

  2. 检查网站目录中的程序文件是否存在。

    • 配置文件中 root 设置的站点目录,检查相关目录中是否存在首页文件。

    • 如果使用vhosts配置多个站点,查看vhosts站点对应的 root 站点目录,检查相关目录中是否存在首页文件。

Nginx网站访问5xx错误

  1. 查看Nginx的错误日志,根据错误信息分析排查。

    执行命令查看错误日志。

    less /var/log/nginx/error_log #CentOS/Alinux系统
  2. 检查Nginx配置文件中的<server>是否有rewrite配置,检查配置是否正确。

  3. 检查网站目录的权限是否正常,一般权限为755。

    站点目录默认为/var/www/html/ 。

    执行命令查看站点目录/var/www/html/ 的权限。

    stat /var/www/html/
  4. 开启php的详细错误日志,查看php程序错误信息。

    修改 php.ini 配置文件,添加如下配置开启详细日志输出。

    display_errors = Off
    error_reporting = E_ALL | E_STRICT

    执行命令重启Nginx,然后访问php页面查看错误。

    systemctl restart nginx #CentOS/Alinux系统
  5. 常见错误排查。

    Nginx 502可以参考:网站报“Nginx 502 bad gateway”错误的解决方法使用Nginx进行访问网页出现“502”和“connect upstream time out”报错

Nginx网站访问卡慢排查

检查服务器性能

主要检查公网带宽、cpu使用率,磁盘IOPS性能。

查看Nginx错误日志,是否有错误信息

执行命令查看Nginx错误日志。

less /var/log/nginx/error_log #CentOS/Alinux系统

检查确认异常卡慢页面

分别检查静态页面,数据库调用页面,如果是数据库调用页面卡慢,可以检查下数据库是否有慢SQL等数据库异常情况。如果所有页面都卡慢,检查下主机负载情况,如带宽、cpu、内存、磁盘IO等情况。

Nginx\PHP\运行异常修复

Nginx服务运行检查

  1. 重启Nginx服务。

    systemctl restart nginx    #CentOS/Alinux系统
  2. 查看Nginx错误日志,根据错误日志具体分析。

    执行命令,查看Nginx错误日志。

less /var/log/nginx/error_log #CentOS/Alinux系统

PHP运行异常检查方法

  1. 开启php详细错误信息。

    修改php.ini 配置文件,添加如下配置开启详细日志输出。

 display_errors = Off
 error_reporting = E_ALL | E_STRICT

执行命令重启nginx。

systemctl restart nginx #CentOS/Alinux系统
  1. 访问php页面,根据详细php错误信息分析排查。

  • 本页导读 (0)
文档反馈