0%

nginx-常见错误

nginx-常见错误

400 bad request
一般原因:请求的Header过大
解决方法:配置nginx.conf相关设置
client_header_buffer_size 16k;
large_client_header_buffers 4 64k;

413 Request Entity Too Large

一般原因:一般出现在上传文件
解决方法:配置nginx.conf相关设置

client_max_body_size 10m;
配置php.ini如下(必须和nginx.conf配置一致)
post_max_size=10M
upload_max_filesize=2M
499 Client Closed Request
一般原因:客户端在为等到服务器相应返回前就关闭了客户端描述符。一般出现在客户端设置超时后,主动关闭socket.
解决方法:根据实际Nginx后端服务器的处理时间修改客户端超时时间。

500 Internal Server Rrror
一般原因:脚本错误,(php语法错误、lua语法错误)
访问量过大,系统资源限制,不能打开过多文件
磁盘空间不足。(access log开启可能导致磁盘满溢 关闭)
解决方法:语法错误查看nginx_err_log php_err_log。
文件访问量:
1.修改nginx配置文件
worker_rlimit_nofile 65535;
2.修改/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
502 Bad Gateway、503 Serveice Unavailable
一般原因:后端服务无法处理,业务中断。
解决方法:从后端日志获取错误原因,解决后端服务器问题。
504 Gateway Timeout
一般原因:后端服务器在超时时间内,未响应Nginx代理请求
解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。
proxy_read_timeout 90;
proxy_send_timeout 90;

1.配置 proxy_pass 时 报错upstream prematurely closed connection while reading response
Nginx默认使用HTTP1.0从后端获取响应返还给客户端,但是HTTP1.0不支持keepalive,因此需要配置proxy_http_version 1.1,proxy_set_header Connection默认close:通知后端服务器主动关闭连接,这样会导致任何一个客户端的请求都在后端服务器上产生了一个TIME-WAIT状态的连接
nginx proxy_pass上添加一下代码:

1
2
proxy_http_version 1.1;
proxy_set_header Connection "";