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

相关文章

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma