upstream中常用的参数
server:负载均衡后端的服务器的IP或域名,不写端口默认是80,高并发场景用域名,再通过DNS进行负载均衡
weight:后端服务器的权重,默认为1,权重越大接收的请求越多,例如:weight=5
max_fails:检查节点的健康状态并允许请求失败的次数,达到该次数将节点下线,默认为1,0表示禁止失败尝试,例如:max_fails=2
fail_timeout:max_fails失败次数达到限制后暂停该节点服务器时间,默认是10秒。
backup:热备配置,当服务池中所有的服务器出现问题后会自动上线backup服务器。
down:标志服务器不可用,不参与负载均衡,这个参数通常配合IP_HASH使用。
max_conns:限制最大连接数,通常对后端服务器硬件不一致的情况进行配置。
keepalive:限制空闲长连接的最大数量。
keepalive_timeout:空闲长连接的最长保持时间。
keepalive_requests:每个长连接最多可以处理的请求数。
upstream配置示例
upstream wp{ server 10.158.1.10 down; server 10.158.1.20 backup; server 10.158.1.30 max_failes=3 fail_timeout=10s weight=5; keepalive_timeout 30s; keepalive_requests 100; }
upstream负载均衡算法
轮询算法(默认算法):每个请求依次会分配给后端不同的应用程序服务器,不理会后端服务器的时机压力。
http{ upstream wp{ server 10.158.1.10; server 10.158.1.20; server 10.158.1.30; } server { listen 80; server name www.wp.com; location /{ proxy_pass http://wp; } } }
加权负载均衡:权重越大的服务器,被分配到的次数就会越多,通常用于后端服务器性能不一致的情况。
http { upstream wp{ server 10.158.1.10 weight=3; server 10.158.1.20 ; } server { listen 80; server name wp.com; localtion / { proxy_pass http://wp; } } }
IP_HASH:当IP进行重复访问时会被指定到上次访问的服务器,可以解决动态网站session共享问题
upstream wp{ ip_hash; server 10.158.1.10; server 10.158.1.20; server 10.158.1.30; }
基于URL的HASH 当 当客户端多次访问同一个地址时分配到固定的节点
upstream wp{ hash $request_url; server 10.158.1.10; server 10.158.1.20; server 10.158.1.30; }
最少连接数轮询:哪个节点当前的连接数少就分配给哪个节点处理
least_conn; upstream wp{ lease_conn; server 10.158.1.10; server 10.158.1.20; }
proxy_pass模块常用指令
proxy_pass 指定需要反向代理的服务器地址,可以是一个upstream池
proxy_next_upstream 如果后端服务器不可用的话自动请求转发到另一台服务器,默认为on,还可以设置为timeout或者http状态码。
proxy_method 修改用户的method请求
proxy_http_version 修改用户的http协议版本
proxy_set_header 修改用户header
proxy_set_body 修改body信息
proxy_send_timeout 默认60s
proxy_connect_timeout 默认60s
server { listen 80; server name wp; location /{ proxy_pass http://10.158.1.110; proxy_method PUT; proxy_http_version 1.1; proxy_set_header wp "wp"; } }
完整配置案例:
隐藏内容
此处内容需要权限查看
微信赞赏
支付宝扫码领红包
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。侵权投诉:375170667@qq.com