nginx负载均衡配置说明

官网:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

upstream模块介绍

Nginx的负载均衡功能依赖于ngx_http_upstream_module,支持的代理方式有proxy_pass(设置一个代理服务器), fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass(设置memcached服务器地址), 和 grpc_pass 指令引用的服务器组;

upstream模块调度算法

1)rr轮询(默认)
服务器将每个前端请求按顺序(时间顺序和排列次序)逐一分配到不同的后端服务器节点。如果后端服务器出现问题,即down掉,那么就会被自动剔除。

2)权重(weight)
在基本的轮询策略基础上考虑各后端服务器节点接受请求的权重,指定各后端服务器节点被轮询到的机率,主要应用于后端服务器节点性能不均的情况。

3)ip_hash
每个请求按访问ip的hash结果分配,当新的请求到达时,先将其客户端ip通过哈希算法哈希出一个值,再根据哈希值分配后端服务器,只有哈希值相同,就会被分配到同一台服务器,该算法可以解决动态网页session共享问题,但可能会导致请求分配不均。

4)最小连接(least_conn)
最少连接数,哪个机器连接数少就分发到哪个机器。

5)fair(第三方)动态算法
按照后端服务器的响应时间来分配请求,响应时间短的优先分配。

6)url_hash(第三方)
按访问url的hash结果来分配请求,让每个url定向到同一个后端服务器,后端服务器为缓存服务器时效果显著。


nginx.conf配置说明

[root@k8smaster conf]# more nginx.conf
worker_processes  1;
events {
    worker_connections  1024; #单个后台worker process进程的最大并发链接数
}
http {
    include       mime.types; #设定mime类型,类型由mime.type文件定义
    default_type  application/octet-stream;
    sendfile        on; #sendfile指令指定nginx是否调用sendfile函数(zero copy方式)来输出文件,对于普通应用,必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime。
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://webs; 
            
            proxy_redirect     off;
            proxy_set_header   Host             $host; 
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

            client_max_body_size 10m;
            client_body_buffer_size 128k;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;    #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_send_timeout         90;    #后端服务器数据回传时间(代理发送超时) / 在连接断开之前两次发送至upstream server的写操作的最大间隔时长;
            proxy_read_timeout         90;    #连接成功后,后端服务器响应时间(代理接收超时)/ 在连接断开之前两次从接收upstream server接收读操作的最大间隔时长;
            proxy_buffer_size          4k;    #设置缓冲区的大小,默认该缓冲区大小等于指令proxy_buffers设置的大小
            proxy_buffers              4 32k; #设置缓冲的数量和大小,nginx从代理的后端服务器获取的响应信息,会放置到缓冲区
            proxy_busy_buffers_size    64k;   #用于设置系统很忙时可以使用的proxy_buffers大小,官方推荐的大小为proxy_buffers*2 
            proxy_temp_file_write_size 64k;   #设定缓存临时文件的大小

        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
 

    upstream webs {
       ip_hash; #用户请求ip通过哈希算法,自动定位到后端服务器。这样使一样ip的用户固定访问一个后端服务器,可以解决session的问题。
       server 192.168.23.101:80 weight=5 max_conns=100; 
       #weigth参数表示权值,权值越高被分配到的几率越大
       #max_conns最大并发活动连接数;默认值为0时,意味着没有限制
       server 192.168.23.102:99  down; #down手动标记其不再处理任何请求
       server 192.168.23.102:80 weight=5 max_fails=2 fail_timeout=30s backup; 
       #max_fails最大尝试失败次数,默认值为1,0表示禁止失败尝试,失败连接的超时时长由fail_timeout指定
       #fail_timeout失败超时时间,默认值为10秒
       #backup将服务器标记为备份服务器,当主服务器不可用时,将会接收请求

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值