概述
我们项目中一直在用nginx做反向代理,最近发现一些443端口日志中出现大量的400 和 408日志,其中408的响应时间在60s左右,所以整理一下关于这方面的问题:
出现400的原因:
1.如果客户端提前关闭了连接或者读取数据发生了其他错误,则给客户端返回一个400错误
2.ngx_http_process_request_line函数中,如果ngx_http_parse_request_line函数返回了错误,则直接给客户端返回400错误,逐行解析错误
3.ngx_http_process_unique_header_line功能类似,不同点在于该函数会检查这个请求头是否是重复的,如果是的话,则给该请求返回400错误。
4.NGX_HTTP_PARSE_INVALID_HEADER,表示请求头解析过程中遇到错误,一般为客户端发送了不符合协议规范的头部,此时nginx返回400错误
5.ngx_http_process_request_header()函数,这个函数主要做了两个方面的事情,一是调用ngx_http_find_virtual_server()函数查找虚拟服务器配置;二是对一些请求头做一些协议的检查。比如对那些使用http1.1协议但是却没有发送Host头的请求,nginx给这些请求返回400错误
6.首字节探测:若成功查看1个字节数据,通过该首字节来探测接受到的数据是ssl握手包还是http数据。根据ssl协议规定,ssl握手包的首字节中包含有ssl协议的版本信息。nginx根据此来判断是进行ssl握手还是返回正常处理htt
最后
以上就是沉默外套为你收集整理的Nginx 日志中的400和408的全部内容,希望文章能够帮你解决Nginx 日志中的400和408所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复