ZJfans Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

openresty-域名解析

1、NGINX 支持的域名解析方式 静态解析:启动/重载时仅调用系统解析库(getaddrinfo()),将域名映射为 IP 列表后缓存,后续不再更新。 变量驱动的动态解析:在 proxy_pass 等指令中使用 $variable,结合 resolver,使 NGINX 在每次请求阶段异步更新域名解析结果。 **异步 resolver + resolve**:开源版 NGINX ≥ 1
2025-05-26
#nginx,openresty #dns #hosts

在OpenResty中实现Redis Sentinel支持

在OpenResty中实现Redis Sentinel支持1、引言OpenResty 通过 lua-resty-redis 模块为 Nginx 提供了与 Redis 交互的能力,但该模块原生仅支持直连模式,不具备高可用场景下的故障转移能力。在复杂的生产环境中,单点 Redis 容易因节点故障导致服务中断,因此需要借助 Redis Sentinel 来实现监控、故障切换、通知和配置提供者等高可用特性
2025-05-17
#openresty,redis #sentinel

NGINX 如何根据客户端协议构造并返回响应

NGINX 如何根据客户端协议构造并返回响应Nginx 向客户端返回响应时,会根据客户端使用的协议类型,构造对应格式的响应数据。为了实现这一点,Nginx 在响应阶段设置了一系列 filter(过滤器)模块,每个 filter 对应特定协议或处理职责。 当响应准备就绪后,这些 filter 会按照链式结构依次执行。Nginx 会根据请求上下文中的 r(ngx_http_request_t)结构体中
2025-05-15
#nginx,HTTP1 #HTTP2

nginx之上下游不同协议的转换

Nginx 主要用于实现路由和反向代理功能。在实际应用中,客户端与后端服务可能使用不同的协议,例如客户端使用 HTTP/2,而后端仍采用 HTTP/1.1。作为应用层(L7)代理,Nginx 会分别与客户端和后端建立独立的连接,解析、处理请求和响应,并根据目标协议格式重新构造数据后转发。 需要注意的是:无论前后端协议是否一致,Nginx 始终执行这一套“应用层重构”流程。当协议
2025-05-10
#websocket #nginx,HTTP

服务自动发现

Nginx 采用 master–worker 多进程模型,其中 master 进程负责管理和信号交互,worker 进程执行网络 I/O、定时器和延迟队列事件循环 。 1、nginx的原理1.1、配置解析与端口初始化1 Master 进程:解析配置与打开监听端口 配置解析:在 main() 中,master 进程首先调用 ngx_init_cycle(),该函数基于 ngx_conf_
2025-04-19
#nginx,work #zookeeper

Chrome 133 引发 net::ERR_CONTENT_LENGTH_MISMATCH 问题的分析与解决

【现象】 最近有用户反馈,在使用 浏览器 访问系统时,部分静态资源请求出现 net::ERR_CONTENT_LENGTH_MISMATCH 错误。具体现象: 页面请求 多个静态资源(HTML/JS/CSS),但部分请求随机失败。 每次刷新,失败的资源 不固定,但问题持续发生。 【排查】 介入排查后,发现几个问题 使用 Chrome 131 及以下版本、Edge、Fire
2025-02-26
#nginx,chrome

linux对于io_uring的应用

1、内核支持io_uring最近发现linux新增了2个补丁,关于支持io_uring,事实上linux在5.1版本就引入了io_uring,有点好奇这次的补丁是实现什么功能 https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=71f0dd5a3293d75d26d405ffbaedfdda4
2025-02-12
#linux,io_uring #epoll

网络部分-epoll分析

1、内核如何接收数据不同主机通过网卡进行数据的交互,网卡将电磁波转换为模拟信号,再转换为数字信号,再由OSI模型传到应用层,变成人可以识别的数据。信号转换属于通信相关的知识,所以从接收到数字信号开始分析数据的流转。 首先当数据帧从网线到达网卡上的时候,第一站是网卡的接收队列。网卡在分配给自己的RingBuffer中寻找可用的内存位置,找到后DMA引擎会把数据DMA到网卡之前关联的内存里,这个时候
2024-11-29
#epoll #nginx,socket

ingress-nginx使用limit_except的问题

1、错误的返回-503起因是ingress-nginx有人提了一个issue:https://github.com/kubernetes/ingress-nginx/issues/11742 ,使用limit_except时没有得到预期的403,而是得到了503,首先看下怎么复现 首先得有一个kubernetes环境,启动一个服务节点foo,然后安装ingress-nginx,ingress的配置
2024-08-25
#ingress-nginx #limit_except

gcc编译选项--fcommon

multiple definition最近在龙蜥操作系统编译时,出现了multiple definition的错误,重复定义?查看了代码,有几个变量确实是重复定义了,简单来讲就是在一个.h文件定义了一个变量,多个.c文件又包含了这个.h,导致这个变量在多个.c文件重复定义,在编译时报错。 修复也很简单,.h文件的中的变量统一加extern,然后只有一个.c文件才能定义初始化这个变量,这样就可以避免
2024-08-17
#gcc #fcommon #fno-common
123

搜索

Hexo Fluid
总访问量 次 总访客数 人