nginx之http反向代理多台服务器
2021-05-08 02:29
标签:一致性 定义 反向代理 状态 高级 weight ati unix套接字 stream nginx之http反向代理多台服务器 标签:一致性 定义 反向代理 状态 高级 weight ati unix套接字 stream 原文地址:https://www.cnblogs.com/dongzhanyi123/p/12081496.htmlNginx http 反向代理高级应用
是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中;默认调度算法是轮询。
实现nginx http反向代理后端多台服务器:
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分组的名称
}
}
上一篇:HTTP请求流程你了解了么?
下一篇:c# 运算符重载