ngx_http_upstream_module模块学习笔记

ngx_http_upstream_module用于将多个服务器定义成服务器组,而由proxy_pass,fastcgi_pass等指令引用php

(1)upstream name  {...} 定义一个后端服务器组,name为组名,只能用于http上下文中nginx

(2) server address [parametrs] 在upstream中定义一个服务器及其相关参数;仅能用于upstream上下文web

 

weight=number:定义服务器权重,默认为1算法

max_fails=number:最大失败链接尝试次数后端

fail_timeout=number:等待目标服务器发送响应的时长tomcat

proxy_pass http://backserver  反代至upstream中定义的组服务器

其它指令不作介绍,前面的博文有详细说明spa

 

(3)ip_hash 源地址hash,把来自同一个ip地址的请求始终发往同一个backend server,除非此backend server不可用3d

 

若是web页面已经绑定了第一台server,而如今我在后面添加了down参数(手动标记其再也不处理任何用户请求)则再次请求时会由第二台server发送响应server

(4) least_conn 最少链接;当各server权重不一样时,即为加权最少链接(算法:当前链接数/权重)

(5) health_check [parameters]; 健康状态检测机制;只能用于location上下文 (官方的nginx对后端服务器的健康状态检测不完善,但淘宝的tengine的完善了此功能)

 

使用upstream模块和proxy_pass模块作动静分离

若是后端是httpd+php服务器

 

若是后端是tomcat服务器