Nginx1.1.4+ 对后端机器的长连接特性

博客分类: web服务器技术
nginx upstream keepalive connections

Nginx从 1.1.4 开始,实现了对后端机器的长连接支持,这是一个激动人心的改进,这意味着 Nginx 与后端机器的通信效率更高,后端机器的负担更低。

例如,对一个没有长连接支持的后端机器,会出现大量TIME_WAIT 状态的连接,使用以下命令验证之:
netstat -n | grep TIME_WAIT

经过查阅官方文档,其目前已经实现了http, fastcgi, memcache 协议的长连接支持。而之前的版本中仅支持 memcache 协议。

1. 启用到 memcache 服务器的长连接
在upstream 配置段中增加 keepalive N 指令即可:
upstream memcached_backend {
server 127.0.0.1:11211;
server 10.0.0.2:11211;
keepalive 32;
}

server {
...
location /memcached/ {
set $memcached_key $uri;
memcached_pass memcached_backend;
}
}


2. 启用fastcgi 长连接支持
除了需要在upstream 中配置 keepalive N 外,还需要在 location 中增加 fastcgi_keep_conn on;
upstream fastcgi_backend {
server 127.0.0.1:9000;
keepalive 8;
}

server {
...
location /fastcgi/ {
fastcgi_pass fastcgi_backend;
fastcgi_keep_conn on;
...
}
}

3. 启用对后端机器HTTP 长连接支持
upstream http_backend {
server 127.0.0.1:8080;
keepalive 16;
}

server {
...
location /http/ {
proxy_pass http://http_backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
}

注意:需要设置nginx 代理请求的 http 协议版本号为 1.1, 以及清除掉 Connection 请求 header, 官方文档描述:
For HTTP, the proxy_http_version directive should be set to “ 1.1 ” and the “ Connection ” header field should be cleared .

The connections parameter should be set low enough to allow upstream servers to process additional new incoming connections as well.

即是说:keepalive N 指令中 , N 的值应该尽可能设置小一些,以便后端机器可以同时接受新的连接。

在我负责的生产环境中,前端是nginx, 静态文件缓存使用 varnish, 使用长连接之后, varnish 机器的连接数从 8000 多下降至 200 多,负载值也有明显降低。

但是针对fastcgi, 即后端机器是 php-fpm 服务时,在 nginx 日志中出现以下错误:
upstream sent unsupported FastCGI protocol version: 0 while reading upstream 。

广泛搜集,目前还未解决之。如果您遇到同样的问题并解决之,请一定联系笔者信箱zhangxugg@163.com, 甚是感谢。
wxWidgets 3.2.1编译踩坑实录:从源码到第一个窗口,我的CMakeLists.txt配置全解析 本文详细记录了在Windows平台下使用MinGW和CMake构建wxWidgets 3.2.1的完整过程,包括环境准备、源码编译、CMake项目配置及常见问题解决方案。特别针对开发环境搭建中的关键参数和路径问题提供了实用建议,帮助开发者快速实现从源码到第一个窗口程序的完整流程。 阅读详情

相关推荐

Nginx Upstream了解一下

Nginx 的 `upstream` 模块是负载均衡的核心组件,用于定义和管理后端服务器集群,实现请求分发、故障转移和高可用性

独立开发,个人小站:ai-bar.cn,网站中还有最近开发得一个写作软件(竹记),欢迎体验交流 2895

Ubuntu 14.04 Nginx Server Blocks 配置详解与生产实践

Nginx Server Blocks(虚拟主机)是实现多站点托管、请求路由隔离与安全策略分治的核心机制,其本质是基于 Host 头匹配的 HTTP 层虚拟化技术。在 Nginx 架构中,它通过 listen、server_name、root 和 location 等指令协同构建请求处理生命周期,决定流量如何被解析、转发或响应。该机制不仅支撑静态服务与反向代理共存,更直接影响 TLS 终止、缓存控制与权限隔离等关键能力。在 Ubuntu 14.04 这类长期服役的 LTS 环境中,受限于 Nginx 1.4

weixin_33728268的博客 699

【nginx实战】通过nginx实现http 长连接(即keep alive)

通过nginx实现http请求的keep alive长连接

hiliang521的博客 6089

Ubuntu 18.04下Nginx反向代理Apache共存实战

Web服务器是承载网站服务的基础运行环境,其核心原理在于HTTP请求的接收、解析与响应分发。Nginx凭借异步非阻塞架构成为高并发场景下的首选Web服务器,而Apache则在动态内容处理(如PHP执行、.htaccess重写)方面具备成熟生态。二者协同的价值在于分工优化:Nginx作为前端反向代理,承担SSL终止、静态资源缓存与流量调度;Apache退居后端专注应用逻辑,实现性能与兼容性的平衡。该方案广泛应用于老旧系统演进、混合技术栈部署及资源受限的云服务器场景,尤其适配Ubuntu 18.04等长期维护但

diaogan4202的博客 362

Nginx的keepalive长连接配置详解

Nginx的keepalive连接保持的特性,实际上就是在一次TCP连接中,可以持续处理多个客户请求,而不断开连接。通过该机制可以减少TCP连接的建立次数,减少TIME_WAIT的状态连接。从而增加服务的吞吐量和整体服务质量。......

飞龙在天 4383

php nginx 长连接,Nginx长连接

讨论关于nginx的长连接和TIME-WAIT相关知识点长连接Nginx从 1.1.4 开始,实现了对后端机器的长连接支持,这意味着 Nginx 与后端机器的通信效率更高,后端机器的负担更低。示例:upstream http_backend {keepalive 16;server 127.0.0.1:8080;}server {location /http/ {proxy_pass http:/...

weixin_33992214的博客 421

AHP层次分析法在项目风险评估中的实战应用(含Excel模板)

本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。

weixin_29061465的博客 571

Nginx使用详解

nginx详细使用

weixin_44767040的博客 2670

从0开始写Vue项目-环境和项目搭建

什么是VueVue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)2.介绍与描述动态构建用户界面的渐进式JavaScript框架作者:尤雨溪3.Vue的特点遵循MVVM模式编码简洁,体积小,运行效率高,适合移动/PC端开发它本身只关注UI,可以引入其它第三方库开发项目4.与其他JS框架的关联借鉴 Angular 的模板和数据绑定技术借鉴 React 的组件化和虚拟DOM技术5.Vue周边库vue-cli:vue脚手架axios。

不愧是暮言的博客 1484

CFturbo 2024保姆级教程:从流量扬程到三维叶轮,手把手搞定离心泵水力设计

本文提供CFturbo 2024离心泵水力设计的全流程实战指南,从流量扬程参数输入到三维叶轮模型导出,详细解析设计步骤与优化技巧。涵盖叶轮尺寸确定、子午面型线设计、叶片角度调整等关键环节,帮助工程师高效完成CAE辅助的离心泵水力设计,提升设计质量与效率。

weixin_42569329的博客 936

Nginx

1、什么是Nginx? Nginx(engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行; 特点:占用内存少,并发能力强; 中国大陆使用nginx网站用户有:百度、京东、网易、新浪、腾讯、淘宝等。 2、正向代理和反向代理区别? 正向代理,是在客户端的。比如需要访问某些国外网站,我们可能需要购买vpn,并且vp...

多多鱼的博客 122

比利时风电光伏负荷一体化数据集解析与应用

本文深度解析了由比利时输电系统运营商Elia集团提供的风电光伏负荷一体化数据集。该数据集整合了负荷、风电与光伏出力数据,并包含多时间尺度的官方预测值,时间跨度长达四年,是研究能源转型、构建电力预测模型及分析电网运行的宝贵资源。文章详细介绍了数据价值、字段含义、实战应用场景(如预测模型基准测试、风光互补性分析)以及数据处理指南,为相关领域的研究与开发提供了高质量数据基础和实践参考。

weixin_29200741的博客 429

Nginx 从入门到实战:一篇搞定所有常用场景

正向代理(代理客户端):你 → 代理服务器 → Google(Google 不知道是你访问的)反向代理(代理服务端):用户 → Nginx → 你的后端服务器(用户不知道后端是谁)为什么需要反向代理?🛡️ 隐藏后端服务器真实 IP⚖️ 负载均衡,把请求分给多台机器🔒 统一处理 SSL 加密📊 统一记录日志🚀 缓存静态资源http {# --- 默认格式 ---# --- JSON 格式(方便 ELK / Loki 等日志系统解析)---'{''}';

weixin_45284808的博客 5499

058、时域降噪(Temporal Denoise):运动补偿与递归滤波在视频降噪中的应用

本文深入探讨了时域降噪(Temporal Denoise)技术在视频处理中的应用。作者通过车载环视项目案例,揭示了空域降噪的局限性,提出利用帧间信息进行降噪的核心思路。文章详细解析了递归滤波和运动补偿两大关键技术,指出递归滤波简单但易产生拖影,而运动补偿通过计算运动矢量解决此问题。作者还分享了多帧降噪方案的优势与算力挑战,并总结了噪声模型匹配、运动矢量一致性等实战调优经验。最后强调时域降噪需要与空域降噪平衡,指出调试工具的重要性,提出"在保证运动区域无鬼影的前提下追求信噪比"的实践原则,体现了算法复杂度与效

zzfmlxs的博客 93

YOLO11改进:轻量级改进 | 通用倒瓶颈(UIB)搜索块结合C3k2二次创新 | 轻量化之王MobileNetV4

通用倒瓶颈(UIB)搜索块替代YOLO11的C3k2

会AI的学姐 294

Nginx 学习

一、官网 源码:nginx – nginx 官网:nginx news 二、介绍 Nginx是俄罗斯人Igor Sysoev编写的轻量级Web服务器,它的发音为[ˈendʒɪnks],它不仅是一个自由的、开源的、高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。 Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Ng..

越努力,越幸运! 2051

STM32实战开发(128):智能位移检测 - 使用STM32实现位移检测

STM32作为一款功能强大的微控制器,由于其出色的处理能力、丰富的外设接口和低功耗特点,成为实现智能位移检测系统的理想选择。未来,可以通过结合更多传感器、多种数据处理算法以及云平台技术,进一步提升系统的智能化水平,优化位移测量的精度和稳定性。本篇博客将介绍如何使用STM32微控制器实现智能位移检测系统,涉及硬件设计、传感器选择、软件开发等多个方面,提供详细的设计步骤,并给出完整的代码示例,帮助开发者快速搭建智能位移检测系统。蜂鸣器连接到STM32的GPIO端口,当位移超过设定的阈值时,蜂鸣器发出警报。

2201_76125393的博客 901

Nginx 一网打尽

早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。“从上面的描述中,主要存在两个问题:①单体结构的部署方式无法承载日益增长的业务流量。②当后端节点宕机后,整个系统会陷入瘫痪,导致...

公众号:Java后端 524

基于STM32、HAL库的ZMOD4510AI4R气体传感器驱动程序设计

ZMOD4510AI4R是Renesas公司推出的一款数字空气质量传感器,主要用于检测臭氧(O₃)和总挥发性有机化合物(TVOC)浓度。(status & 0x80)) // 检查数据就绪位。// 等待测量完成 (实际应用中应该使用非阻塞方式)// 转换为ppb (简化转换,实际应根据传感器文档校准)* @param hzmod: ZMOD4510句柄。* @param tvoc: TVOC浓度(ppb)* @param ozone: 臭氧浓度(ppb)* @param hi2c: I2C句柄。

corlin6688的博客 312

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

前端必修课Nginx的超详讲解

一口气学完前端一定要会的Nginx

meteorites的博客 1293

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Nginx笔记

Nginx学习笔记

panzhengxiang的博客 882

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

QPS比Nginx提升60%,阿里Tengine负载均衡算法揭秘

作者丨毅松 1前言 在阿里七层流量入口接入层(Application Gateway)场景下,Nginx 官方的 Smooth Weighted Round-Robin(SWRR)负载均衡算法已经遭遇瓶颈。阿里自研 Tengine 通过实现新的负载均衡算法 Virtual Node Smooth Weighted Round-Robin(VNSWRR)解决了 SWRR 算法在阿里业务场景下的缺陷,...

weixin_45189747的博客 799
上一篇: Linux - ss命令详解
下一篇: 虚拟机
kokiafans
博客等级 码龄18年 8粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值