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

一   上游服务器建立连接

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

①   proxy_connect_timeout

含义: 建立tcp连接,控制'tcp三次握手'的超时时间
 
变量: $upstream_connect_time'(包含TLS握手时间)'
 
+++++++++++  分割线  +++++++++++
 
1)当60s 'tcp 三次握手无法'建立成功,上游就'没有响应','nginx'会自身记录'502'响应码

   说明: 出现'502'一定是没有与'上游'建立tcp连接
 
2) 如果到后端的'网络路由'不通,就'不会'等待60s,立刻报错502
 
3) 定界:看日志中的'超时'时间是否超过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_timeout
 
 1)后端服务器连接的超时时间,发起'握手等候响应'超时时间(代理'连接'超时)默认60s
 
proxy_read_timeout
 
 1)它决定了nginx会'等待多长时间'来获得请求的响应('响应超时')默认值60s

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
upstream模块Nginx的一个模块,它允许定义一组或多组服务组,通过proxy_pass代理方式将网站的请求发送到事先定义好的对应upstream组的名字上。这个模块可以实现负载均衡,即将请求分发到多个后端服务器上,从而提高系统的性能和可靠性。当一个节点故障时,配置了upstream时可以自动切换到正常工作的节点。\[1\] 在upstream模块中,可以配置上游服务器,也就是后端服务器,通过配置upstream模块可以实现Nginx的负载均衡和集群配置。例如,可以通过配置upstream模块将请求分发给多个tomcat服务器。可以使用轮询或加权轮询的方式进行负载均衡,确保请求均匀地分发给后端服务器。\[2\] 此外,upstream模块还可以通过设置max_conns参数来限制每台服务器的最大连接数,以保护服务器免受过载。当所有服务器连接数达到最大连接数时,Nginx会返回502 bad gateway错误,以避免过载。\[3\] #### 引用[.reference_title] - *1* [Nginx系列--upstream模块的使用](https://blog.csdn.net/feiying0canglang/article/details/128024454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Nginx upstream模块Nginx集群配置)](https://blog.csdn.net/b15735105314/article/details/106971540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值