当前位置:首页 > nginx > 正文内容

nginx 负责的几种模式

root2年前 (2022-01-07)nginx471

系统通过nginx 负载均衡提升服务并发

nginx 的upstream模块实现


nginx 负载的几种方式:

1、轮询

每个请求按时间顺序分配到不同的后端服务器,如果服务器down掉,能自动剔除

按顺序访问服务器,每刷新一次就会更换一个服务器,关闭其中一台服务器,重复刷新依旧是同一台服务器

upstream myserver{
    server 127.0.0.1:10010;
    server 127.0.0.1:10011;
}
server {
     listen 80;
     client_max_body_size 10M;

     location / {
        root /root/;
        index index.html;
        }
     
     location /user {
        proxy_pass http://myserver;

     }
}


2、加权

简单来说按照自己设定的几率将请求分配到服务器上,主要用于服务器性能分布不均的情况

upstream myserver{
   server 127.0.0.1:10010 weight=30;
    server 127.0.0.1:10011 weight=10;
}

server {
     listen 80;
     client_max_body_size 10M;

     location / {
        root /root/;
        index index.html;
        }
     
     location /user {
        proxy_pass http://myserver;

     }
}


3、IP哈希

每个请求按访问ip的hash结果分配,可以将每个用户固定到一台服务器上

upstream myserver{
    ip_hash;
    server 127.0.0.1:10010;
    server 127.0.0.1:10011;
}

server {
     listen 80;
     client_max_body_size 10M;

     location / {
        root /root/;
        index index.html;
        }
     
     location /user {
        proxy_pass http://myserver;

     }
}


4、fair(第三方) 

按后端服务器的响应时间来分配请求,响应时间快的优先分配

upstream myserver{
    server 127.0.0.1:10010;
    server 127.0.0.1:10011;
    fair;
}

server {
     listen 80;
     client_max_body_size 10M;

     location / {
        root /root/;
        index index.html;
        }
     
     location /user {
        proxy_pass http://myserver;

     }
}


5、URL哈希(第三方)

按访问URL哈希结果分配,让每个URL分配到同一台服务器上,适用于服务器缓存。例如有三台服务器A,B,C下载存储服务器D上的图片资源,用户被分配到A上,A访问D下载返回给用户。将图片资源缓存一周,在一周内同一个URL资源请求可以定向到A,避免访问到其他服务器上,令其他服务器再次访问D服务器并下载图片资源,造成不必要的带宽

upstream myserver{
    server 127.0.0.1:10010;
    server 127.0.0.1:10011;
    hash $request_uri;
    hash_method crc32;
}

server {
     listen 80;
     client_max_body_size 10M;

     location / {
        root /root/;
        index index.html;
        }
     
     location /user {
        proxy_pass http://myserver;

     }
}



关于upstream的参数


down:当前server不参与负载

weight=2:负载权重为2

max_fails和fail_timeout:#服务器X秒内出现请求失败X次,nginx会认为这台服务器已经宕机,X秒内不会再次进行请求,将请求转发到其他正常机器,时间结束后再次请求

backup;#其他非backup宕机或者忙的时候,会请求这台机器(热备机)


https://www.cnblogs.com/pandawan/p/10887845.html


扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=199

分享给朋友:
返回列表

上一篇:nginx 配置文件解读

没有最新的文章了...

相关文章

Nginx proxy 代理网站常用优化配置

vim /etc/nginx/proxy_paramsproxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-F...

nginx 正则表达式

1、正则表达式匹配~ 区分大小写匹配~* 不区分大小写匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配^ 以什么开头的匹配$ 以什么结尾的匹配转义字符。可以转. * ?等* 代表任意字符2、文件及目录匹配-f和!-f用来判断是否存...

nginx 反向代理 之参数转发

举个栗子server {      listen 80;      client_max_body_size&nbs...

nginx 的root 和alias 的区别

当配置nginx时,路径的匹配是有这几种情况的,请求路径是否拼接。例如:当用户请求 xxx:8080/static/img/demo01.jpglocation /static {        &n...

Chrome 报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING 导致界面显示不出来

出现这个问题是因为nginx在代理的过程中由于数据量太大,需要缓存数据,分包发送。缓存数据就要有空间放置。这个时候启动nginx的用户没有对该文件权限,就导致分包发送的包不全。解决方案:扩大nginx代理过程中对数据的处理大小,使其不分包发...

nginx 配置文件解读

Nginx 能做什么?反向代理静动分离负载均衡正向代理nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location&nbs...