目录
302定义
403错误
413错误
499错误
502错误
504错误

302定义

302 redirect: 302 代表暂时性转移(Temporarily Moved )。
意思就是你访问网址A,但是网址A因为服务器端的拦截器或者其他后端代码处理的原因,会被重定向到网址B。

我这里出现302错误的原因是由于我的后端代码写了拦截器Filter,当从网站A访问带有某关键词路径的接口时就会被拦截,因而我将网站A要访问的接口的关键词进行了修改,使其不会被拦截器拦截,就能正常从后端获取数据了。

作者:weberweber
链接:https://www.jianshu.com/p/ad4f8ab8bbd6
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

403错误

403是很常见的错误代码,一般就是未授权被禁止访问的意思。

可能的原因有两种:
Nginx程序用户无权限访问web目录文件
Nginx需要访问目录,但是autoindex选项被关闭

修复方法:
授予Nginx程序用户权限读取web目录文件
设置autoindex目录为on

location /path/to/website/folder {

autoindex on;
… }

413错误

在上传时Nginx返回了413错误:“413 Request Entity Too Large”,这一般就是上传文件大小超过Nginx配置引起。

修复方法:
在Nginx.conf增加client_max_body_size的设置,这个值默认是1M,可以增加到8M以提高文件大小限制;
如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。

post_max_size = 8M
upload_max_filesize = 2M

499错误

日志记录中HTTP状态码出现499错误有多种情况,我遇到的一种情况是nginx反代到一个永远打不开的后端,就这样了,日志状态记录是499、发送字节数是0。

给业务部门做一个代理使用google docs 。总是莫名奇妙的反馈打不开,发现nginx日志下报了很多499 。

499错误是什么?让我们看看NGINX的源码中的定义:

ngx_string(ngx_http_error_495_page), /* 495, https certificate error /
ngx_string(ngx_http_error_496_page), /
496, https no certificate /
ngx_string(ngx_http_error_497_page), /
497, http to https /
ngx_string(ngx_http_error_404_page), /
498, canceled /
ngx_null_string, /
499, client has closed connection */

可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。

Nginx 499错误的原因及解决方法
打开Nginx的access.log发现在最后一次的提交是出现了HTTP1.1 499 0 -这样的错误,在百度搜索nginx 499错误,结果都是说客户端主动断开了连接。
但经过我的测试这显然不是客户端的问题,因为使用端口+IP直接访问后端服务器不存在此问题,后来测试nginx发现如果两次提交post过快就会出现499的情况,看来是nginx认为是不安全的连接,主动拒绝了客户端的连接.

但搜索相关问题一直找不到解决方法,最后终于在google上搜索到一英文论坛上有关于此错误的解决方法:
proxy_ignore_client_abort on;
Don’t know if this is safe.
就是说要配置参数 proxy_ignore_client_abort on;
表示代理服务端不要主动关闭客户端连接。

以此配置重启nginx,问题果然得到解决。只是安全方面稍有欠缺,但比总是出现找不到服务器好多了。

还有一种原因是 我后来测试发现 确实是客户端关闭了连接,或者说连接超时 ,无论你设置多少超时时间多没用 原来是php进程不够用了 改善一下php进程数 问题解决 默认测试环境才开5个子进程。

502错误

Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。

修复方法:
1、查看FastCGI进程是否已经启动

ps -aux | grep php-cgi

2、检查系统Fastcgi进程运行情况

除了第一种情况,fastcgi进程数不够用、php执行时间长、或者是php-cgi进程死掉也可能造成Nginx的502错误。

运行以下命令判断是否接近FastCGI进程,如果fastcgi进程数接近配置文件中设置的数值,表明worker进程数设置太少。

netstat -anpo | grep “php-cgi” | wc -l

3、FastCGI执行时间过长

根据实际情况调高以下参数值

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

504错误

Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

Nginx 504 Gateway Time-out一般与Nginx.conf的设置有关。

头部太大这种情况可能是由于Nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起,如果你的fastcgi服务对这个挂起处理的不好,那么最后就极有可能导致504 Gateway Time-out。

默认的fastcgi进程响应的缓冲区是8K,可以调大以下参数:

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 由 128K 改为 256K;
fastcgi_temp_file_write_size 由 128K 改为 256K。

此外,也可能是php-cgi的问题,需要修改php.ini的配置:

将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。
将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率。

Nginx常见错误代码总结和处理方案相关推荐

  1. nginx 发布前端资源的缓存方案

    nginx 发布前端资源的缓存方案 前言 对于前端开发者来说,最头疼的事情莫过于.当你兴冲冲的给项目打包以后,上传到 nginx 等静态资源服务器发布以后,自己本地验证没问题,以为万事大吉,结果测试人 ...

  2. 服务器常见错误代码500、501、502、503、504、505分析

    一:500错误 1.500 Internal Server Error 内部服务错误:顾名思义500错误一般是服务器遇到意外情况,而无法完成请求. 2.500出错的可能性: a.编程语言语法错误,we ...

  3. Nginx+Tomcat 负载均衡集群方案

    2019独角兽企业重金招聘Python工程师标准>>> Nginx+Tomcat 负载均衡集群方案 该方案是我之前做过的一个项目生产应用的,目前运行良好,如何您生产使用,请先做好测试 ...

  4. Nginx常见的错误及解决方法

    1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的错误 sbin/nginx -c conf/nginx.conf 报错内容:sbin/nginx: error while lo ...

  5. 连接被远程计算机621,拨号上网常见错误代码提示及解决方法

    错误代码提示及解决方法 1.错误 678 问题:线路故障问题,不能进行连接,连接被远程计算机关闭,远程计算机没有响应 原因:网线接触不好或其它线路故障. 解决:自行检查网线的连接是否出现接触不良的情况 ...

  6. nginx 常见参数以及重定向参数配置

    nginx 常见参数以及重定向参数配置 nginx 各参数翻译,作用 $arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值. $args #这个变量等于请求行中 ...

  7. 邮件系统常见错误代码解释 --邮件服务器端(MTA)错误代码解释

    邮件系统常见错误代码解释 --邮件服务器端(MTA)错误代码解释 MTA(Mail Transfer Agent ):邮件传送代理,由「邮件服务器」扮演 MTA 角色,负责完成 MUA (邮件使用代理 ...

  8. 11、MySQL常见错误代码一览表

    MySQL 出错时反馈的代码代表出错的原因,我们只有明白这些代码代表的意思,才能了解 MySQL 数据库的错误,找出原因,解决问题.下面介绍 MySQL 服务器和客户端中的错误代码.提示消息的生成方式 ...

  9. c语言常见错误代码释义,C语言常见错误代码释义解析.doc

    C语言常见错误代码释义解析 C语言常见错误代码释义 错误代码及错误信息 错误释义error 1: Out of memory 内存溢出error 2: Identifier expected 缺标识符 ...

最新文章

  1. 执行高性能任务的强大桌面计算机是,用于高性能任务的强大的桌面计算机是一个______。...
  2. 孰轻孰重:可穿戴式设备的助益与风险
  3. win7虚拟机黑苹果_首次安装黑苹果系统,原来如此简单,比真正的Mac电脑更快!...
  4. 网易云信集成视频教程(六):如何快速实现iOS下IM自定义消息收发?
  5. DeepWriterID:不依赖书写内容的书写人识别
  6. 维权靠微博?用户京东金融账户被盗刷15万 处理未果怒发微博曝光
  7. java 发送cookie_java – 如何在response.sendRedirect()之后发送cookie?
  8. 网页打开html无法编辑,电脑浏览器网页无法输入文字该怎么办?
  9. 教你如何写初/高级技术岗位简历
  10. Rhel7.3_Oracle12cR2的RAC搭建安装
  11. 南卡的电容笔对比倍思哪个好?南卡和倍思电容笔测评
  12. matlab作业 阳光的快乐老爹,霍思燕6岁儿子近照曝光,调皮起来超阳光,完美继承老爹容颜!...
  13. php程序员就业方向,php程序员发展方向_php程序员有前途吗
  14. LIS的O(nlogn)算法(二分)
  15. unix cat命令
  16. 故宫景点功课11:后三宫区(下)
  17. 探索性测试与脚本测试:谁赢了?
  18. Amazon、Google、IBM、Microsoft的云计算平台及其特点
  19. 软件成分分析(SCA)详述
  20. Python模块的搜索路径

热门文章

  1. Revit版本对应的.NET框架版本
  2. 【报告分享】汽车产业变革的浪潮之巅-中国智能驾驶行业研究报告-艾瑞咨询(附下载)
  3. 教育知识与能力——简答题30题
  4. 汇编语言王爽 实验第四章
  5. UNIX痛恨者手册[转载]
  6. vasp可以做哪些计算及命令
  7. html拖动控件详解
  8. 查看Java虚拟机的运行状态
  9. 079-mxd-冒险岛-自主学习搭建-单机联机都可以,详细教程
  10. 举个栗子~Minitab 技巧(3):用分组条形图快速对比数据