当前位置:首页 > 科技  > 软件

我们一起聊聊 Nginx 后端长连接

来源: 责编: 时间:2024-07-17 07:44:13 516观看
导读nginx 后端长连接Nginx 后端长连接的优点包括:减少连接建立和关闭的消耗和延迟:在一个 TCP 连接上可以传送多个 HTTP 请求和响应,避免了频繁建立和关闭连接的开销,提高了性能。降低服务器负载:特别是对于 QPS(每秒请求数)较

nginx 后端长连接

Nginx 后端长连接的优点包括:ABB28资讯网——每日最新资讯28at.com

  • 减少连接建立和关闭的消耗和延迟:在一个 TCP 连接上可以传送多个 HTTP 请求和响应,避免了频繁建立和关闭连接的开销,提高了性能。
  • 降低服务器负载:特别是对于 QPS(每秒请求数)较高或网络环境不稳定的场景,能够有效减少服务器处理连接创建和关闭的压力。
  • 提升资源利用率:可以更有效地利用系统资源,避免连接频繁创建和释放导致的资源浪费。

ABB28资讯网——每日最新资讯28at.com

然而,Nginx 后端长连接也存在一些缺点:ABB28资讯网——每日最新资讯28at.com

  • 内存使用问题:如果设置的长连接最大请求数过高,可能会导致过多的内存使用。
  • 连接管理复杂:需要合理配置相关参数,如 keepalive 空闲连接数量,以适应不同的请求负载和响应情况,否则可能会出现连接数量的震荡,在某些情况下仍然需要进行连接的创建和释放。

ABB28资讯网——每日最新资讯28at.com

在 Nginx 中,涉及长连接的主要配置指令涵盖以下几个方面:ABB28资讯网——每日最新资讯28at.com

  • keepalive_timeout:此指令用于设定 keep-alive 客户端连接在服务器端维持开启的超时值。例如,keepalive_timeout 120s 这一设置表明将超时值设定为 120 秒。
  • keepalive_requests:该指令规定了一个 keep-alive 连接能够服务的请求的最大数量。举例来说,keepalive_requests 1000 意味着将最大请求数量设定为 1000。
  • proxy_http_version 1.1:需在 location 块中进行配置,旨在确保采用 HTTP 1.1 协议,因为长连接的支持始于 HTTP 1.1 版本。
  • proxy_set_header connection "":用于清除来自客户端请求中的 connection 头部信息。

完成 Nginx 长连接的配置后,可通过查看 Nginx 的访问日志和错误日志来获取与长连接有关的信息。ABB28资讯网——每日最新资讯28at.com

访问日志一般会记录客户端的请求详情,涵盖请求的 URL、客户端 IP 以及响应状态码等。虽然它不会直接呈现长连接的相关信息,然而,通过观察客户端与 Nginx 之间的交互状况,能够推断长连接的使用情况。ABB28资讯网——每日最新资讯28at.com

错误日志则有可能会记录长连接处理期间出现的问题,例如连接超时、连接被重置等错误。ABB28资讯网——每日最新资讯28at.com

若要针对日志中的长连接相关问题展开具体分析,或许需要留意以下几个要点:ABB28资讯网——每日最新资讯28at.com

  • 查看是否存在频繁的连接建立与关闭的记录,这种情况可能暗示长连接未能正常运作。
  • 留意错误日志中是否出现类似于 readv() failed (104: Connection reset by peer) 等与连接相关的错误提示信息。

倘若在长连接的使用过程中遭遇问题,可以依据日志中的具体错误提示展开进一步的排查与解决。比如,调整 keepalive_timeout 和 keepalive_requests 的值,或者对网络环境、后端服务器的配置等进行检查。此外,务必保证 Nginx 自身以及后端服务器均能够正常支持长连接,并且网络的稳定也是确保长连接正常工作的关键因素。ABB28资讯网——每日最新资讯28at.com

要是问题依旧存在,可以提供更为详尽的错误日志信息,以便进行更精准的分析和诊断。ABB28资讯网——每日最新资讯28at.com

以下为相关的 Nginx 配置示例:ABB28资讯网——每日最新资讯28at.com

http {    # 与客户端的长连接设置    keepalive_timeout 120s;  # 设置客户端连接在服务器端保持开启的超时值为 120 秒    keepalive_requests 10000;  # 设置一个 keep-alive 连接上可以服务的请求的最大数量为 10000    # 与后端服务器的长连接设置    upstream backend {        server 192.168.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;        server 192.168.0.2:8080 weight=1 max_fails=2 fail_timeout=30s;        keepalive 300;  # 设置每个 worker 进程与 upstream 服务器建立的最多空闲 keep-alive 连接数量为 300    }    server {        listen 8080 default_server;        server_name "";        location / {            proxy_pass http://backend;            proxy_set_header host $host;            proxy_set_header x-forwarded-for $remote_addr;            proxy_set_header x-real-ip $remote_addr;            add_header cache-control no-store;            add_header pragma no-cache;            proxy_http_version 1.1;  # 设置与后端服务器通信采用的 HTTP 版本为 1.1            proxy_set_header connection "";  # 清理来自客户端请求中的 'connection' header        }    }}

例如,对于一个响应时间为 100 毫秒,要求性能达到 10000 QPS 的 HTTP 服务,可能需要在 Nginx 与上游服务器之间建立大概 1000 条 HTTP 请求(1000 / 0.1s = 10000)。ABB28资讯网——每日最新资讯28at.com

假设 keepalive 的值设置为 10,在请求和应答都均匀平稳的情况下,每 0.1 秒有 1000 个请求收到并释放,连接池中没有空闲连接,无需建立新连接。ABB28资讯网——每日最新资讯28at.com

但如果应答平稳而请求不平稳,如第 0.3 秒只有 500 个请求收到,Nginx 检测到连接池中有 500 个空闲连接,就可能关闭(500 - 10)个连接;而在第 0.4 秒收到 1500 个请求时,由于池里只有(500 + 10)个连接,Nginx 不得不重新建立(1500 - 510)个连接。若不关闭那 490 个连接,则只需重新建立 500 个连接。ABB28资讯网——每日最新资讯28at.com

同样,在请求平稳但应答不平稳时,也可能出现连接数量的反复震荡。ABB28资讯网——每日最新资讯28at.com

总之,通过合理配置 Nginx 后端长连接,可以充分发挥其优势,提高系统的性能和资源利用率,但需根据实际情况仔细调整相关参数,以避免潜在的问题。ABB28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-101271-0.html我们一起聊聊 Nginx 后端长连接

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 不掉头发“逆向”旋转验证码

下一篇: 别做平庸Coder!掌握这十个架构绝技,让你成为团队MVP

标签:
  • 热门焦点
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • 梁柱接棒两年,腾讯音乐闯出新路子

    梁柱接棒两年,腾讯音乐闯出新路子

    文丨田静 出品丨牛刀财经(niudaocaijing)7月5日,企鹅FM发布官方公告称由于业务调整,将于9月6日正式停止运营,这意味着腾讯音乐长音频业务走向消亡。腾讯在长音频领域还在摸索。为
  • 中国家电海外掘金正当时|出海专题

    中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 8月见!小米MIX Fold 3获得3C认证:支持67W快充

    8月见!小米MIX Fold 3获得3C认证:支持67W快充

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
  • 与兆芯合作  联想推出全新旗舰版笔记本电脑开天N7系列

    与兆芯合作 联想推出全新旗舰版笔记本电脑开天N7系列

    联想与兆芯合作推出全新联想旗舰版笔记本电脑开天 N7系列。这个系列采用兆芯KX-6640MA处理器平台,KX-6640MA 处理器是采用了陆家嘴架构,16nm 工艺,4 核 4 线
Top
Baidu
map