1)proxy_pass订立反向代理,开始生效
2)一些指令定义发向上游服务器的内容
3)接收完整的请求body,如果请求有body
4)与上游建立连接,把请求发送给上游

(1)向上游服务建立连接
Syntax: proxy_connect_timeout time;
Default:    
proxy_connect_timeout 60s;
Context:    http, server, location
控制TCP握手时间
nginx没有与上游服务建立连接:502
超时后,回向客户端生成http响应,响应码502

(2)当出现错误换一个上游服务器继续处理
Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | non_idempotent | off ...;
Default:    
proxy_next_upstream error timeout;
Context:    http, server, location

(3)上有连接启用 tcp keepalive
Syntax: proxy_socket_keepalive on | off;
Default:    
proxy_socket_keepalive off;
Context:    http, server, location
数据包传输过程时.设置一段时常,如果没有响应,发送探测包去探测,看一看对端是否在建立连接
TCP keeplive是操作系统实现的.目的:把一些不使用的连接及时关闭,减少资源浪费

(4)上游连接启用http keepalive
Syntax: keepalive connections;
Default:    —
Context:    upstream

Syntax: keepalive_requests number;
Default:    
keepalive_requests 100;
Context:    upstream

(5)修改TCP连接中的local address
Syntax: proxy_bind address [transparent] | off;
Default:    —
Context:    http, server, location
[1]当nginx上游有多个ip地址,有多个路由策略不同.不使用系统默认ip地址.主动选择ip地址
[2]透传ip地址

可以使用变量:
 - proxy_bind $remote_addr;
可以使用不属于所在机器的IP地址:
 - proxy_bind $remote_addr transparent;
 (linux操作系统需要transparent,非linux系统worker进程需要有root权限)
 修改source ip addr

(6)当客户端关闭连接时
当上游client异常关闭连接,porxy是否忽略.client与nginx已经关闭,nginx与上游服务连接正常工作
Syntax: proxy_ignore_client_abort on | off;
Default:    
proxy_ignore_client_abort off;
Context: http, server, location
(7)向上游发送http请求
Syntax: proxy_send_timeout time;
Default:    
proxy_send_timeout 60s;
Context:    http, server, location

ngx与上游建立连接,并把请求发送给上游

92.与上游服务建立连接相关推荐

  1. Android应用程序与SurfaceFlinger服务的连接过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7857163 前文在描述Android应用程序和 ...

  2. Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析

    在前两文中,我们分析了Activity组件的窗口对象和视图对象的创建过程.Activity组件在其窗口对象和视图对象创建完成之后,就会请求与WindowManagerService建立一个连接,即请求 ...

  3. Windows7 打开任务计划提示“任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”解决办法

    不知什么原因,Windows7系统进入"控制面板"----"管理工具"----"任务计划程序"时,提示"任务计划程序服务不可用.任 ...

  4. 2. ZK客户端与服务端建立连接的过程(基于NIO)

    ZK客户端与服务端建立连接的过程 引例 1. 启动SendThread 2. 状态初始化 3. 开始连接 4. 处理服务端连接响应 5. 流程图 在上一篇<客户端启动源码分析>文章中讲到了 ...

  5. 因为未将计算机与远程服务,win7提示错误797未建立到远程访问服务的连接怎么办...

    ‍‍ 网络连接不上有各种各样的原因,我们可以通过得到的错误代码来找到故障的原因.最近有些win7 32位系统的用户在使用宽带连接上网的时候出现了错误797未建立到远程访问服务的连接,因为找不到调制解调 ...

  6. ZooKeeper客户端源码(一)——向服务端建立连接+会话建立+心跳保持长连接

    首发CSDN:徐同学呀,原创不易,转载请注明源链接.我是徐同学,用心输出高质量文章,希望对你有所帮助. 一.从ZooKeeper实例初始化开始 ZooKeeper 提供了原生的客户端库,虽然不好用,但 ...

  7. 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库

    html与mysql建立连接数据库 内容精选 换一换 云数据库 GaussDB(for MySQL)是华为云提供的一款安全.可信的数据库服务.GaussDB(for MySQL)秉承华为云对租户的安全 ...

  8. 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)...

    之前做好的asp.net部署后,发现 访问数据库时: 异常:已捕获: "已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 ...

  9. golang mysql 超时_golang中mysql建立连接超时时间timeout 测试

    本文测试连接mysql的超时时间. 这里的"连接"是建立连接的意思. 连接mysql的超时时间是通过参数timeout设置的. 1.建立连接超时测试 下面例子中,设置连接超时时间为 ...

最新文章

  1. Python未来的发展趋势怎么样
  2. UITableVeiw相关的需求解决
  3. mysql mydumper_采用mydumper对MySQL部分数据库进行热备
  4. 2.Azure资源组迁移
  5. C# 委托(Delegate)
  6. mlflow_使用MLflow跟踪进行超参数调整
  7. 深入AsyncTask
  8. UVA10190 Divide, But Not Quite Conquer!【等差数列】
  9. Multisim14 - 运行10版本文件时数码管一直显示为0的问题
  10. java中数组集合存放位置_java中数组以及集合
  11. lisp ssget 浩辰_ssget 详解
  12. PowerBI-日期和时间函数-YEAR\QUARTER\MONTH\DAY
  13. USB转TTL、USB转RS232的实现
  14. 分布式文件存储MinIO SeaweedFS FastDFS对比总结
  15. 网络游戏通讯引擎,高性能IOCP模型(.Net)
  16. H5 嵌入条码和二维码生成
  17. shell双引号、单引号、反撇号的使用
  18. 华为od 研发岗一手笔试题
  19. 艺赛旗RPA 网页处理系列(三):网页检查 / 审查小技巧
  20. firefox同步mac和win

热门文章

  1. Android开发实践:自定义ViewGroup的onLayout()分析
  2. Bash-Script
  3. 如何在 Laravel 中 “规范” 的开发验证码发送功能
  4. Spring入门(1)
  5. Maven 环境快速搭建
  6. C#与PHP字符串解压缩
  7. 动态规划解决约瑟夫环问题
  8. C++ 函数参数入栈方式与调用约定
  9. mysql之查询排序
  10. textbox点击后弹出系统键盘导致背景重置为白色的问题