本文共 1612 字,大约阅读时间需要 5 分钟。
这里主要介绍运维过程中经常遇到的状态码。并通过业界流行的Nginx进行模拟实现,让大家能够对HTTP状态码有一个理性的认识(必会,牢记)1实验场景操作系统 centos 7.3实验用的软件包 nginx php-fmp php http-tools(直接使用yum仓库原生软件包)yum -y install nginx php-fmp php http-tools#2xx状态码2xx 类型的状态码表示一个HTTP请求成功(比如 200)3xx状态码3xx 类型状态码主要表示HTTP请求URL重定向行为(常见301,301,304)301状态码URL 永久性重定向,在nginx中通过rewrite指令结合permanent标记实现302状态码URL 临时重定向,在nginx中通过rewrite指令结合redirect标记实现301与302的区别301与302状态码都是URL重定向,其中301是永久,302是临时。不管是永久还是临时对于用户来说两者没有任何感官上的区别。都是在访问链接A时跳转到了链接B,并看到浏览器上的地址同样由A变成了B。它们主要区别在于搜索引擎,搜索引擎是要建立索引规则和权重的,如果链接A被设定为永久重定向到B,那搜索引擎可以确定A的地址永久改变了,就会把B当做唯一有效的目标地址。这时搜索引擎会把老地址相关信息带到新地址,同时在搜索引擎库中彻底废弃原先的老地址,而搜索引擎对于302则没有这样的行为304状态码客户端缓存,通过nginx中的expires指令完成4xx状态码4xx 类型状态码主要表示客户端错误,客户端发起HTTP请求头不完整,客户使用的用户名,密码错误等,都会被标记为客户端错误。(常见400,401,403)400状态码当web服务器遇到不完整的HTTP请求头时,会返回400状态码。请求头信息或者Cookis信息过大,通常是导致不完整的请求头的原因。(由web服务器端的配置决定)在nginx中这类web服务器中,决定这个值的配置字段是large_client_header_buffers。通过调整这个字段,可以模拟400状态码401状态码权限验证错误。就是需要用户名,密码等权限认证,但是客户端又没有通过认证。在nginx中想要模拟必须将nginx调整为认证模式。#403状态码没有权限访问。文件权限过小或者人为设置不允许某个ip地址访问等,都会出现403状态码#404状态码文件不存在,当我们访问一个不存在的文件时,就会出现404状态码。499状态码499这个状态码不是htto协议中定义的标准状态码,而是nginx自己定义的一个状态码当客户端主动断开连接的时候,nginx就会返回499的状态码。按照这个状态码的定义,只要nginx返回结果之前主动断开客户端连接,就会出现499状态码。#5xx状态码5xx 类型的状态码主要表示服务端错误,此时就不需要纠结客户端问题500状态码服务器端代码出现异常。代码语法错误,连接不上数据库等就会出现500状态码502状态码502 Bad Gateway。nginx 502错误的原因比较多,主要是因为在代理模式下后端服务器出现问题引起的。这个错误一般都不是nginx本身的问题,一定要从后端找原因。比如出现一种后端PHP-FPM进程挂掉的情况,就会出现502状态码。504状态码504 Gateway Time-ou 超时 当PHP-FPM的执行时间大于nginx的读超时时间,就会出现504状态码————————————————版权声明:本文为CSDN博主「Ever_Linux」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Ever_Linux/java/article/details/92416942