博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 常见异常
阅读量:4229 次
发布时间:2019-05-26

本文共 2714 字,大约阅读时间需要 9 分钟。

问题:

网站上线后。添加HTTPS证书,浏览器访问正常,通过curl请求,请求被reset

分析:

先curl 请求同域名的HTTP的url,返回正常,80端口正常

接着访问同服务器下其他HTTPS域名,返回正常,443端口无异常

猜测:

证书问题?证书未到期呀,小编好郁闷

用tcpdump抓包,wireshark分析得出,两端握手完成,发起数据传输后的第一个确认就被reset了

难道是客户端发送数据太大,nginx的buffer不够吗

修改了 下nginx关于client相关配置

client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
client_body_buffer_size 20m;
keepalive_timeout 120;

                                                

结果没有效果

可以尝试换一个证书看看,这里不演示了,因为小编猜到会出错

对照其他网站的nginx配置,少了ssl_session_cache

ssl优化的一个配置,起到缓存的作用,减少握手次数(结果恢复正常状态了哈哈哈)

可选参数如下:

  • off

    严禁使用session缓存:nginx明确告诉客户端session可能不会被重用

  • none

    session缓存的使用被禁止:nginx告诉客户端session可能会被重用,但实际上并不会将session参数存储在缓存中

  • builtin

    在OpenSSL中构建的缓存;仅由一个工作进程使用。缓存大小在session中指定。如果没有给出大小,则等于20480个会话。使用内置高速缓存可能导致内存碎片

  • shared

    所有工作进程之间共享缓存。缓存大小以字节为单位指定;一兆字节可以存储大约4000个session。每个共享缓存都应该有一个任意名称。具有相同名称的缓存可以用于多个虚拟服务器

反正就是,你要做缓存的话,就两个参数,builtin和shared,而且这两个参数可以同时开启,但是建议只使用shared,性能要更高一些

但是看完我仍然理解不了,为什么加了这个参数,curl就不报reset了,你们可以再次尝试抓包对比并和之前的做对比研究研究~

 

nginx日志中常见error日志

#整理的不是俺,俺只是知识的搬运工

 

1.”upstream prematurely(过早的) closed connection”

请求uri的时候出现的异常,是由于upstream还未返回应答给用户时用户断掉连接造成的,对系统没有影响,可以忽略

2.”recv() failed (104: Connection reset by peer)”

(1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;

(2)客户关掉了浏览器,而服务器还在给客户端发送数据;

(3)浏览器端按了Stop

3.”(111: Connection refused) while connecting to upstream”

用户在连接时,若遇到后端upstream挂掉或者不通,会收到该错误

4.”(111: Connection refused) while reading response header from upstream”

用户在连接成功后读取数据时,若遇到后端upstream挂掉或者不通,会收到该错误

5.”(111: Connection refused) while sending request to upstream”

Nginx和upstream连接成功后发送数据时,若遇到后端upstream挂掉或者不通,会收到该错误

6.”(110: Connection timed out) while connecting to upstream”

nginx连接后面的upstream时超时

7.”(110: Connection timed out) while reading upstream”

nginx读取来自upstream的响应时超时

8.”(110: Connection timed out) while reading response header from upstream”

nginx读取来自upstream的响应头时超时

9.”(110: Connection timed out) while reading upstream”

nginx读取来自upstream的响应时超时

10.”(104: Connection reset by peer) while connecting to upstream”

upstream发送了RST,将连接重置

11.”upstream sent invalid header while reading response header from upstream”

upstream发送的响应头无效

12.”upstream sent no valid HTTP/1.0 header while reading response header from upstream”

upstream发送的响应头无效

13.”client intended to send too large body”

用于设置允许接受的客户端请求内容的最大值,默认值是1M,client发送的body超过了设置值

14.”reopening logs”

用户发送kill  -USR1命令

15.”gracefully shutting down”

用户发送kill  -WINCH命令

16.”no servers are inside upstream”

upstream下未配置server

17.”no live upstreams while connecting to upstream”

upstream下的server全都挂了

18.”SSL_do_handshake() failed”

SSL握手失败

19.”ngx_slab_alloc() failed: no memory in SSL session shared cache”

ssl_session_cache大小不够等原因造成

20.”could not add new SSL session to the session cache while SSL handshaking”

ssl_session_cache大小不够等原因造成

参考连接:

- tcpdump抓包可以,分析包还是得用wireshark

 

 

转载地址:http://feiqi.baihongyu.com/

你可能感兴趣的文章
基于微区块链的V2X地理动态入侵检测
查看>>
面向V2C场景的ADAS数字孪生模型构建方法
查看>>
Comma2k19数据集使用
查看>>
面向自动驾驶车辆验证的抽象仿真场景生成
查看>>
一种应用于GPS反欺骗的基于MLE的RAIM改进方法
查看>>
自动驾驶汽车GPS系统数字孪生建模(一)
查看>>
自动驾驶汽车GPS系统数字孪生建模(二)
查看>>
CUDA 学习(五)、线程块
查看>>
CUDA 学习(八)、线程块调度
查看>>
CUDA 学习(九)、CUDA 内存
查看>>
CUDA 学习(十一)、共享内存
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十四章 生化尖兵
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十五章 超级马里奥64
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十七章 游戏感的原理
查看>>
游戏感:虚拟感觉的游戏设计师指南——第十八章 我想做的游戏
查看>>
游戏设计的艺术:一本透镜的书——第十章 某些元素是游戏机制
查看>>
游戏设计的艺术:一本透镜的书——第十一章 游戏机制必须平衡
查看>>
UVM:7.5.1 期望值与镜像值
查看>>
增加windows下Tomcat运行时的内存
查看>>
tomcat群集中session共享的几个方案
查看>>