Nginx状态码

常见的nginx状态码有如下:

301-永久移动。被请求的资源已被永久移动位置;
302-请求的资源现在临时从不同的URI响应请求;
305-使用代理。被请求的资源必须通过指定的代理才能被访问;
307-临时跳转。被请求的资源在临时从不同的URL响应请求;
400一错误请求;
402一需要付款。该状态码是为了将来可能的需求而预留的,用于一些数字货币或者是微支付;
403-禁止访问。服务器已经理解请求,但是拒绝执行它; 
404-找不到对象。请求失败,资源不存在;
406-不可接受的。请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体;
408-请求超时;
409-冲突。由于和被请求的资源的当前状态之间存在冲突,请求无法完成;
410-遗失的。被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址;
413-响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值。
417-期望失败。在请求头Expect中指定的预期内容无法被服务器满足;
418-我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现;
420-方法失效。
422-不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应;
500-服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;
502-请求后端失败
504-请求成功但是响应超时

实际生产nginx常遇到的状态码:

301-永久移动。被请求的资源已被永久移动位置;
302-请求的资源现在临时从不同的URI响应请求;
307-临时跳转。被请求的资源在临时从不同的URL响应请求;
400一错误请求;
403-禁止访问。服务器已经理解请求,但是拒绝执行它; 
404-找不到对象。请求失败,资源不存在;
413-响应实体太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值(可调节client_max_body_size 大小)
500-服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;
502-请求后端失败(后端程序错误)
504-请求成功但是响应超时 (上游服务响应超时,可调节keepalive_timeout 大小)

可获取状态码命令:

curl  -o  /dev/null -s -w %{http_code}   www.baidu.com

注解:
-o /dev/null 将文件保存在/dev/null(黑洞)
-s 安静模式不输入任何东西
-w %{http_code} 输入httpd响应状态码

### Nginx 常见状态码及其含义 HTTP 状态码是服务器对客户端请求的响应标识,由三位数字组成,首位数字定义类型。Nginx 作为常用的反向代理和 Web 服务器,在处理客户端请求时会返回多种状态码。以下是 Nginx 常见状态码及其含义的详细解析。 #### 1. 1XX(信息性响应) 1XX 状态码表示请求已被接收,服务器正在继续处理。例如: - **101 Switching Protocols**:服务器已理解客户端的请求,并准备切换协议,如从 HTTP 切换到 WebSocket [^1]。 #### 2. 2XX(成功响应) 2XX 状态码表示请求已成功处理。常见的状态码包括: - **200 OK**:请求成功,服务器已返回请求的数据 [^1]。 - **201 Created**:请求成功且服务器创建了新的资源,如上传文件成功后返回该状态码 [^1]。 #### 3. 3XX(重定向) 3XX 状态码表示需要客户端进一步操作以完成请求。常见状态码包括: - **301 Moved Permanently**:资源已被永久移动到新位置,客户端应使用新 URI 重新请求 [^1]。 - **304 Not Modified**:客户端请求的资源未修改,可使用本地缓存 [^1]。 #### 4. 4XX(客户端错误) 4XX 状态码表示客户端请求有误,服务器无法处理。常见状态码包括: - **400 Bad Request**:客户端请求格式错误,服务器无法理解。例如,POST 请求中的 JSON 数据格式不正确,服务器会返回 400 [^2]。 - **401 Unauthorized**:客户端请求需要身份验证,但未提供有效凭据。例如,访问受保护资源时未登录,服务器会返回 401 。 - **403 Forbidden**:服务器理解请求,但拒绝执行。通常是因为用户没有权限访问特定资源。例如,普通用户尝试访问管理员页面,服务器会返回 403 [^2]。 - **404 Not Found**:服务器无法找到请求的资源。例如,用户访问了一个不存在的网页,服务器会返回 404 [^2]。 - **405 Method Not Allowed**:客户端使用了服务器不允许的 HTTP 方法。例如,服务器只允许 GET 请求,但客户端发送了 POST 请求 [^3]。 - **413 Payload Too Large**:客户端发送的请求体过大,服务器无法处理 [^3]。 - **429 Too Many Requests**:客户端发送请求过多,服务器因限流策略拒绝处理 。 #### 5. 5XX(服务器错误) 5XX 状态码表示服务器在处理请求时发生错误。常见状态码包括: - **500 Internal Server Error**:服务器内部发生错误,通常是由于配置错误或后端服务异常 [^1]。 - **502 Bad Gateway**:Nginx 作为反向代理时,从上游服务器收到无效响应。例如,后端服务未运行或返回错误数据 [^1]。 - **504 Gateway Timeout**:Nginx 作为反向代理时,上游服务器未能及时响应,导致超时 [^1]。 ### 示例:Nginx 日志中的状态码Nginx 的 Access 日志中,状态码通常以字段形式记录,例如: ``` 192.168.8.1 - - [10/Oct/2023:13:55:36 +0000] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0" ``` 在上述日志中,`200` 表示请求成功,`612` 表示响应体大小(字节),`"-"` 表示无 Referer,`"Mozilla/5.0"` 表示客户端浏览器信息。 ### 常见问题排查 - **400 Bad Request**:检查客户端请求格式是否正确,如 JSON 数据是否符合预期结构。 - **403 Forbidden**:确认服务器权限配置是否正确,如文件或目录的访问权限限制。 - **502 Bad Gateway**:检查后端服务是否正常运行,如 PHP-FPM、Tomcat 等应用服务器。 - **504 Gateway Timeout**:调整 Nginx 的超时设置,如 `proxy_read_timeout`、`proxy_send_timeout` 等参数。 ### 示例配置:调整 Nginx 超时设置 ```nginx http { upstream backend { server 192.168.8.156; } server { listen 80; location / { proxy_pass http://backend; proxy_read_timeout 60s; proxy_send_timeout 60s; } } } ``` 在上述配置中,`proxy_read_timeout` 和 `proxy_send_timeout` 分别设置为 60 秒,以避免因后端服务响应慢导致 504 错误。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值