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.与上游服务建立连接92.与上游服务建立连接92.与上游服务建立连接92.与上游服务建立连接92.与上游服务建立连接92.与上游服务建立连接

相关文章:

  • 2021-08-01
  • 2021-10-20
  • 2021-10-13
  • 2021-10-20
  • 2021-06-11
  • 2021-04-03
  • 2021-11-06
  • 2021-10-28
猜你喜欢
  • 2022-12-23
  • 2022-01-22
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
  • 2021-05-25
相关资源
相似解决方案