Nginx常见错误码解决方案

302错误

现象:nginx在使用非80端口做反向代理时,浏览器访问发现返回302错误

解决方案:

  1. //如果是 proxy_set_header Host $host;
  2. //那么改成proxy_set_header Host $host:$server_post;
  3. //没有配置则加上proxy_set_header Host $host:$server_post;
  4. //以下为添加位置
  5. location ^/api {
  6. proxy_set_header Host $host:$server_post;
  7. proxy_pass http://127.0.0.1;
  8. }

400错误

nginx400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。若cookie太大,可能还需要调整large_client_header_buffers(默认4k)

403错误

参考(403错误解决)[https://rumenz.com/rumenbiji/nginx-403-forbidden.html]

413错误

  1. 413 Request Entity Too Large

上传文件过程中容易出现这个问题,传递的某些数据大小超过了nginx的配置

解决方案:

  1. hhtp{
  2. client_max_body_size 8M; //改变这个值
  3. client_body_buffer_size 128k; //缓冲区大小
  4. }
  5. 如果后端是php 修改php.ini
  6. post_max_size = 8M
  7. upload_max_filesize = 6M
  8. 重启php服务
  9. 如果后端是Springboot
  10. Spring Boot 1.3.x
  11. multipart.maxFileSize=8M
  12. multipart.maxRequestSize=8M
  13. Spring Boot 1.4.x and 1.5.x
  14. spring.http.multipart.maxFileSize=8M
  15. spring.http.multipart.maxRequestSize=8M
  16. Spring Boot 2.x
  17. spring.servlet.multipart.max-file-size=8M
  18. spring.servlet.multipart.max-request-size=8M

414错误

414 Request-URI Too Large 请求的url太长了

解决方案:

  1. http{
  2. client_header_buffer_size 512k;
  3. large_client_header_buffers 4 512k;
  4. }

499错误

这是nginx定义的一个状态码,用于表示这样的错误:服务器返回http头之前,客户端就提前关闭了http连接

问题的核心就是要排查为什么服务端处理时间过长

可能问题:

1.后台python程序处理请求时间过长

2.mysql慢查询

通过查看监控:

1.cpu和内存的使用,都在正常范围

2.后台程序访问正常

3.MySQL没有慢查询

502错误

502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应

504错误

504 Gateway Time-out:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。

返回笔记列表
入门小站