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

nginx 负责的几种模式

root3年前 (2022-01-07)nginx839

系统通过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 的root 和alias 的区别

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

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...

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

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

nginx 反向代理 之参数转发

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

nginx 配置静态界面 访问返回403

在配置nginx 静态界面访问返回403没有访问权限一般是nginx 去访问静态文件时没有访问权限这种情况一般是因为文件放置的位置在root文件夹下,查看一下nginx 启动的user是什么一般都是www-data这种情况只能访问共享的文件...

nginx 正则表达式

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