Nginx(四)负载均衡

一    nginx目录的说明

 1 nginx/
 3 |-- client_body_temp
 4 |-- conf                               #这是Nginx所有配置文件的目录,极其重要
 5 |   |-- fastcgi.conf                    'fastcgi相关参数的配置文件'
 6 |   |-- fastcgi.conf.default               #fastcgi.conf的原始备份
 7 |   |-- fastcgi_params                   #fastcgi的参数文件
 8 |   |-- fastcgi_params.default
 9 |   |-- koi-utf
10 |   |-- koi-win
11 |   |-- mime.types                     '媒体类型'
12 |   |-- mime.types.default
13 |   |-- nginx.conf                     '这是nginx默认的主配置文件'
14 |   |-- nginx.conf.default                      #default结尾的都是备份文件
15 |   |-- scgi_params                    #scgi相关参数文件,一般用不到
16 |   |-- scgi_params.default
17 |   |-- uwsgi_params                       #uwsgi相关参数文件,一般用不到
18 |   |-- uwsgi_params.default
19 |   `-- win-utf
20 |-- fastcgi_temp                         #fastcgi临时数据目录
21 |-- html                          这是编译安装时'nginx的默认站点目录',类似Apache的默认站点/var/www/html目录
23 |   |--50x.html                                 #错误页面优雅替代显示文件,例如:出现502错误时会调用此页面
24          #     error_page   500502503504  /50x.html;
25 |   `-- index.html                              #默认的首页文件,首页文件名字是在nginx.conf中事先定义好的。
26 |-- logs                                        这是'nginx默认的日志路径',包括错误日志及访问日志
27 |   |-- access.log                              这是nginx的默认'访问日志文件',使用tail -f access.log,可以实时观看网站用户访问情况信息
28 |   |-- error.log                               这是nginx的'错误日志文件',如果nginx出现启动故障等问题,一定要看看这个错误日志
29 |   `-- nginx.pid                               'nginx的pid文件',Nginx进程启动后,会把所有进程的ID号写到此文件
30 |-- proxy_temp                                  #临时目录
31 |-- sbin                                        这是'nginx命令的目录',如Nginx的启动命令nginx
32 |   `-- nginx                                   #Nginx的启动命令nginx
33 |-- scgi_temp                                   #临时目录
34 `-- uwsgi_temp                                  #临时目录

 二    Nginx的负载均衡核心配置文件

ngx_http_upstream_module --> 'nginx需要安装这个模块'才具备这个功能 --> 才能使用'upstream'指令

(1)默认 rr

将'server节点下'的'location节点'中的proxy_pass配置为:'http:// + upstream'名称
vim /usr/local/lnmp/nginx/conf/nginx.conf

# 修改配置文件!

default_type  application/octet-stream;
    charset utf-8;
        # 反向代理(负载均衡)的模块-->默认的策略!
    upstream wzj {
                server 172.25.2.1:80; #RS1
                server 172.25.2.2:80; #RS2
    }


server {
                listen 80;
                server_name lb.wzj.com;        #域名访问(客户端配置解析)
                location / {
                        proxy_pass http://wzj; #使用上面定义的负载均衡的模块(wzj)!
                }
        }

synax'语法校验'
nginx -t

重新'加载配置文件'-->nginx做了软链接
nginx -s reload

测试1

curl lb.wzj.com
#  server1 爱
curl lb.wzj.com
#  server2 爱

测试2

# 关闭其中一个RS,然后看访问的内容!

# 结论:此时会访问RS开启的服务器!

(2)ip hash方式

+++++++++++++++'负载均衡方式'+++++++++++++++

upstream test {
    ip_hash;
    server 172.25.0.1;
    server 172.25.0.2;
}

核心指令"ip_hash"只能在upstream {}中使用。这条指令用于通知nginx'使用ip hash负载均衡'算法

备注:如果没加这条指令,nginx会使用默认的'round robin负载均衡'模块

(3)nginx的后端轮询方式

Nginx的upstream支持'5种'分配方式,下面将会详细介绍,其中'前三种为Nginx原生支持'的分配方式,后两种为'第三方'支持的分配方式

(4)upstream模块的讲解

+++++++++++'涉及健康检查'+++++++++++

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

  1)down 表示单前的server暂时'不参与负载'

  2)weight 默认为1,weight越大,'负载的权重'就越大

  3)max_fails :允许请求失败的次数默认为1.当'超过最大次数'时,返回proxy_next_upstream 模块'定义的错误'

  4)fail_timeout : max_fails'次失败后',暂停的时间

  5)backup: 其它所有的'非backup机器down或者忙'的时候,才请求backup机器,所以这台机器'压力会最轻',可以理解为'备用'服务器

思考问题: 后端挂了,请求是否会'转发到'上面

参考博客

(4)proxy相关的指令

​ngx_http_proxy_module'模块'

server {
    listen       80;
    server_name  localhost;
    location / {
        proxy_pass http://backend;
        proxy_connect_timeout 1;
        proxy_read_timeout 1;
    }
}

 

(5)原生nginx健康检查问题

备注: 后端节点异常'和'被nginx置为'判断'为异常节点是'两码事'

(6)第三方健康检查的模块

其它参考

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值