是Nginx可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。 http upstream配置参数: upstream name #自定义一组服务器,配置在http内;指定upstream服务器组的名称,名称中不能包含"_",否则会报错;upstream可以和server配置在一个文件中,也可以单独一个文件,但是upstream不能配置在server里面。 server address parameters; address可以配置为IP、域名、unix套接字; parameters参数可以配置下面几种: weight=number #设置权重,默认为1。 max_cOnns=number #给当前server设置最大活动链接数,默认为0表示没有限制。 max_fails=number #对后端服务器连续监测失败多少次就标记为不可用。 fail_timeout=time #对后端服务器的单次监测超时时间,默认为10秒。 backup #设置为备份服务器,当所有服务器不可用时将重新启用次服务器。 down #标记为down状态。 resolve #当server定义的是主机名的时候,当A记录发生变化会自动应用新IP而不用重启Nginx。 hash KEY consistent; #基于指定key做hash计算,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用,consistent定义使用一致性hash运算,一致性hash基于取模运算。KEY可以设置为$request_uri,基于用户的请求的uri做hash运算。 ip_hash; #源地址hash调度方法,基于的客户端的remote_addr(源地址)做hash计算,以实现会话保持。 least_conn; #最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器。 注:调度算法需要设置在upstream中;默认调度算法是轮询。
upstream xxx-app1 { server 192.168.38.37:80 weight=1 fail_timeout=5s max_fails=3; server 192.168.38.47:80 weight=1 fail_timeout=5s max_fails=3; } server { listen 80; server_name www.xxxpc.net; location /web { index index.html; #需要指定默认页面 proxy_pass http://xxx-app1; #指定upstream分组的名称 } }
nginx之http反向代理多台服务器