nginx 负责的几种模式
系统通过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