-
TCP - 基于 TLSv1.2 的正常交互流程
一个基于 TLSv1.2 的正常交互的抓包示例 图中 124.64.x.x 是客户端 IP,172.16.x.x 是服务端 IP。 按编号来依次大致说明一下几个数据包: 3697 ~ 3699,握手建立连接; 3700 ~ 3708,建立 TLS; 3709 ~ 3723,正常的...—— Posted on February 12, 2021 -
TCP - 三次握手失败,反复超时重传
一个三次握手失败的抓包示例 图中 106.122.x.x 是客户端 IP,172.16.x.x 是服务端 IP。 按编号来依次说明一下几个数据包: 1.客户端发送[SYN]包,服务端正常收到; 2.服务端回复1[SYN, ACK]; 3.服务端超时重传[SYN, ACK]; 4...—— Posted on February 12, 2021 -
关于 SYN_RECV、backlog 和 Nginx && Tomcat 的优化
发现大量的 SYN_RECV 几个月前有一次线上某个服务出了点问题,登到服务器上查一查,发现后端服务 CPU 跑满,前端调用无响应,查看端口时发现后端服务端口有大量的 SYN_RECV 状态的连接。 当时先查出后端服务出现内存溢出,导致半卡死,于是优先重启了服务恢复服务正常运行。关于为什么...—— Posted on February 10, 2021 -
如何用 byte 数组存储 int 和 long 型高精度数值
一个小需求 最近刚在项目中接触到一个类似业务流水号(订单号)的生成唯一性编号的需求,这个东西之前倒是没接触过,在很久以前遇到的最多也就拿数据库生成自增序列完事,而流水号一般需要其中的数据有意义,并可反推等。 找到代码中生成流水号的工具类准备学习参考一番,看到了一些类似如下的代码: byt...—— Posted on January 30, 2021 -
从源码学习 Logstash 内存式队列的运行原理
duration_in_millis 是什么 在上篇博客《LogIQ —— 一个 Logstash 监控数据展示页面》中关于管道状态数据展示中有提到执行耗时,在 Logstash 的监控 API 中能拿到的数据就是这个 duration_in_millis ,单位是毫秒,更确切的说,这个数据...—— Posted on January 3, 2021 -
LogIQ —— 一个 Logstash 监控数据展示页面
如何监控 Logstash 网上目前关于 Logstash 监控大体有两类文章,一是介绍官方的 X-Pack 监控,二是介绍 Logstash 自己的监控 API 。 第一种,X-Pack 是官方的插件,配合 ElasticSearch 和 Kibana 能采集展示 ELK 全家桶里各种组...—— Posted on December 10, 2020 -
Nginx 过滤静态资源文件的访问日志
凌乱的日志 日常使用的 Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js、css、jpg 等静态资源的请求,比较影响查看后端接口调用的日志 ...—— Posted on October 27, 2020 -
使用 map 实现 Nginx 允许多个域名跨域
版本说明 Nginx 1.14.0 常见的 Nginx 配置允许跨域 server { listen 11111; server_name localhost; location ~ /xxx/xx { if ($request...—— Posted on October 24, 2020 -
Nginx 代理域名地址时的 DNS 缓存问题
问题描述 接上篇文章中提到的 Nginx 解析域名地址的问题,用一句话描述就是“proxy_pass 中如果配置的是域名地址,Nginx 只有在 start / restart / reload 时,才会连接一次域名服务器解析域名,缓存解析的结果,后续则不会根据解析结果的 TTL 进行自动更...—— Posted on May 17, 2020 -
Nginx 转发域名地址报 400 Bad Request
问题描述 在内网服务器上部署了一个服务,其中有某些接口是外网的域名地址,所以找了内网里一台能访问外网的服务器,通过 Nginx 进行转发,但是出现了通过 Nginx 转发出去的请求直接返回 400 Bad Request,查了很久才知道问题在哪里,也算是 Nginx 配置的不熟跟 HTTP ...—— Posted on May 5, 2020