nginx(六十三)proxy模块(四)与上游服务器建立连接

2024-01-19 01:20

本文主要是介绍nginx(六十三)proxy模块(四)与上游服务器建立连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一   上游服务器建立连接

前提: 通过'upstream'模块的'负载均衡算法'选中一台'server',准备建立'tcp'连接

①   proxy_connect_timeout

含义: 建立tcp连接,控制'tcp三次握手'的超时时间变量: $upstream_connect_time'(包含TLS握手时间)'+++++++++++  分割线  +++++++++++1)当60s 'tcp 三次握手无法'建立成功,上游就'没有响应','nginx'会自身记录'502'响应码说明: 出现'502'一定是没有与'上游'建立tcp连接2) 如果到后端的'网络路由'不通,就'不会'等待60s,立刻报错5023) 定界:看日志中的'超时'时间是否超过60s说明: 一般都是'后端服务器(负载高、连通性、协议等)'有问题

②  proxy_socket_keepalive

说明: 与上游建立连接'成功'后,对tcp连接的'健康探活'

③  与上游建立HTTP长连接

④  上游建立tcp连接失败的容错方案

     proxy_next_upstream
     proxy_next_upstream_timeout
     proxy_next_upstream_tries

⑤  proxy_bind

作用: 修改'tcp'连接的'source ip'

1)nginx有多个'ip'地址,不使用系统'默认'分配的ip地址与'上游'建连2)透传'ip'地址3)实现'使用浮动ip地址(nginx集群)'与'后端服务器'进行通信

应用场景

nginx proxy_bind修改源码支持多ip绑定  相关参考

proxy_bind和split_client结合突破tcp端口数量限制

⑥  proxy_ignore_client_abort

++++++++++++ "设置on的效果 [定界499报错] [用于debug测试] "  ++++++++++++0) 原来'error.log'有日志,'access.log'没日志 --> 到只有'access.log'有日志1)由原来'大量'的'499'报错,到现在没有'499'报错,说明不是'nginx'的问题2)nginx会等待后端'处理完'(或者'超时'),然后'忠实记录'后端的返回信息到'日志' 现象: nginx中正常记录'非499(200、5xx)'到'access.log'日志,但是'客户端'没有收到'body'3)没有从'本质上'解决客户端没能拿到'请求响应'的问题499报错'解决'策略: 具体还是得从'请求链路'、'超时时间'、'程序处理性能的提升上'从根本解决问题++++++++++++ "建议"  ++++++++++++1) 生产环境'不建议'使用proxy_ignore_client_abort on来'处理'这个错误2) 因为这样当有'大量瞬间断开的请求'时,后端会'默默地'全部处理,比较'浪费'资源3) 而且'并发压力'比较大时,用这种方法将'压垮'机器

499报错

⑦  proxy_send_timeout

++++++++++++++++++  "分割线"  ++++++++++++++++++proxy_connect_timeout1)后端服务器连接的超时时间,发起'握手等候响应'超时时间(代理'连接'超时)默认60sproxy_read_timeout1)它决定了nginx会'等待多长时间'来获得请求的响应('响应超时')默认值60s

 

这篇关于nginx(六十三)proxy模块(四)与上游服务器建立连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/620861

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu