Nginx 提示相关错误码

Nginx 提示相关错误码

更新时间:2017-10-17 11:40:16

提示:这篇文档是由阿里云售后支持团队针对特定或紧急问题提供的“快速发布”文档。文档的内容以原稿呈现,未进行编辑及审核。因此,阿里云对于文档内容不做任何承诺, 并且,我们有权在未经通知您的情形下对文档内容做出编辑、修改或提供补充信息。

403 报错

image | center | 554x259

403 报错具体原因

403一般都是一个自定义的状态码,比如有些特定的场景需要返回403报错。比如:

  • 网站禁止特定的用户访问所有内容,例:网站屏蔽某个 IP 访问。
  • 访问禁止目录浏览的目录,例:设置 autoindex off 后访问目录。
  • 用户访问只能被内网访问的文件。

403 问题常见解决方法:

但是如果是配置错误也会导致出现访问异常报错,比如默认访问文件被修改篡改,访问根目录权限错误。目录索引设置错误(index 指令配置),网站根目录不包含 index 指令设置的文件。

如下图标红的部分,就是网站个目录指认的默认访问 index 文件,如果是实际站点根目录下并无对应指定文件,那么就会提示 403 报错。

image | center | 438x164

404 报错

image | center | 554x305

404 报错的具体原因

404 报错原因是由于访问的路径根目录没有所需的访问位置,和 Apache 原理相同,检测下 Nginx 配置文件,yum 安装默认在 /etc/nginx/conf.d/default.conf 为 Nginx 的默认配置文件。

  1. server {
  2. listen 80;
  3. server_name localhost;
  4. location /{
  5. root /mnt/index.html;
  6. index index.html index.htm;
  7. }
  8. }

以上配置为nginx最简单实现一个站点的配置方法,如上所示,root 是访问站点的根目录,这个位置是不需要填写访问文件的,下面的一行是指认的默认的访问首页文件。将 root 一行的 index.html 路径取消即可,如下图。修改后再次重启 Nginx 后恢复正常。

image | center | 395x154

image | center | 554x295

502 报错

image | center | 554x257

问题原因

常见的原因可能是 php-cgi 进程数不够用、PHP 执行时间长(MySQL 慢)、或者是 php-cgi 进程卡死,都会出现 502 错误。

下面举例说明几个常见的问题点。

1、fastcgi 缓冲区设置过小

如出现类似报错,在 Nginx 错误日志中 “upstream sent too big header while reading response header from upstream” 类似的错误。

如下图所示,主要是要修改 fastcgi 缓冲区缓存的大小即可。注:修改缓冲区大小可能会给主机资源带来影响,使用一段时间后可能比较容器出现 php-cgi 内存溢出的情况。

image | center | 554x362

2、PHP 执行超时

PHP 执行超时是比较常见的一个错误,具体需要修改 php.ini 默认超时时间设置,如果不知道 php.ini 这个文件在哪,可以使用 whereis php 来查询下,如下图,yum安装默认在 /etc 下。

image | center | 554x38

如下图可以修改下 max_execution_time 调整大写,默认是 30,可以调整到 300 左右。

image | center | 437x327

3、Nginx 等待时间超时

部分 PHP 程序的执行时间超过了 Nginx 的等待时间,可以适当增加 nginx.conf 配置文件中 FastCGI 的 timeout 时间

image | center | 424x323