nginx负载均衡

负载均衡
实验
实验目的:浏览器输入192.168.17.10/edu/a.html/,负载均衡效果,平均8080和8081端口。
准备 两台tamcat服务器 一台8080端口 一台8081端口
在两台tamcat服务器webapps里面创建 edu文件夹 在建立文档
因之前的8080端口已有edu 现在再8081创建edu并且html文件
配置nginx配置文件

 vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

[root@localhost sbin]# ./nginx -s stop   关闭ngixn
[root@localhost sbin]# ./nginx               启动nginx
[root@localhost sbin]# pwd
/usr/local/nginx/sbin

测试 192.168.17.10/deu/a.html 刷新服务器再切换

在这里插入图片描述
在这里插入图片描述
负载均衡:(load balance)是将负载分摊到不同的服务单元,既保证服务的可用性,有保证响应足够快,给用户和你好的体验。
再linux下有nginx、LVS、haproxy等等服务可以提共负载均衡服务,而nginx提供了几种分配方式(策略)。

Nginx分配服务策略
1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动刷除。
2、weight:代表权重默认为1,权重越高备份配的客户越多。
例如:

upstream server_pool
server 192.168.5.21:80 weight=5;
server 192.168.5.22:80 weght=10;

3、ip hash:每个请求按访问IP的hash结果分配,这样每个访问固定访问一个后端服务器,可以解决session的问题,例如:

upstream server_pool
ip_hash
server 192.168.5.21:80;
server 192.168.5.22:80;

4、fair(第三方):按照后端服务器的响应时间来分配请求,响应时间短的优先分配。
例如:

upstream server_pool
server 192.168.5.21:80;
server 192.168.5.22:80;
fair

动静分离

linux新建date 里面新建 image和www 文件,两文件存入对应的数据。
在这里插入图片描述
配置nginx配置文件

vi /usr/local/nginx/conf/nginx.conf
 

在这里插入图片描述
浏览器输入 192.168.17.10/image/01.jpg/
在这里插入图片描述
因配置autoindex on所以会有如下显示。
在这里插入图片描述

高可用集群

原理在这里插入图片描述
1、需要2台nginx服务器
2、需要keepalived 2台服务器都需要
3、需要虚拟ip
配置
安装keepalived 两台服务器都需要安装
[root@localhost usr]# yum -y install keepalived
安装位置
[root@localhost /]# cd /etc/
安装后在 etc 生成目录 keepalived 有文件 keepalived.conf

高可用配置(主从配置) 主从都需要

vi keepalived.conf*
lobal_defs {             #全局定义
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.17.10    #IP地址为主服务器IP (备服务器 IP不变)
   smtp_connect_timeout 30
   router_id LVS_DEVEL      #访问到主机
}
#此处主要检测nginx服务器是否正常
vrrp_script chk_http_port {               #脚本配置
   srcipt "/usr/local/src/nginx_check.sh"    #脚本
   interval 2     #检测脚本执行的间隔  2表示2s
   weight 2        #当主服务器宕机 将它的权重减少2   
}   

vrrp_instance VI_1 {            #虚拟全局
    state MASTER        #备份服务器上将MASTER(主) 改成 BACKUP*(备)
    interface ens160        #服务器网卡名称  ip addr可查询
    virtual_router_id 51   #主、备机的virtual_router_id必须相同
    priority 100   #主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1   #每个1s 检测服务器是否宕机
    authentication {   #权限检验方式  密码1111
        auth_type PASS
        auth_pass 1111     
    }
    virtual_ipaddress {
        192.168.17.50     //VRRP 虚拟IP地址
    }
}

检测ngixn是否正常脚本 添加到/usr/local/src/

[root@localhost src]# cat nginx_check.sh 
#!/bin/bash
A='ps -c nginx -no-header | wc -l'
if [$A -eq 0 ];then 
   /usr/local/nginx/sbin/nginx    #nginx启动命令位置
    sleep 2
   if [ 'ps -C nginx --no-header | wc -l' -eq 0 ];then
          killall keepalived        #主服务器宕机,杀掉主服务器,备服务器开始
   fi
fi

启动 nginx keepalived (主从操作一样)

[root@localhost sbin]# ./nginx -s stop    #关闭nginx
[root@localhost sbin]# ./nginx             #启动ngixn
[root@localhost sbin]# systemctl start keepalived.service    #启动keepalived
[root@localhost sbin]# pwd
/usr/local/nginx/sbin

查看进程 (主从操作一样)

[root@localhost sbin]# ps -ef | grep keepalived
root      8467  1349  0 00:42 pts/0    00:00:00 vi keepalived.conf
root      8789     1  0 01:52 ?        00:00:00 /usr/sbin/keepalived -D
root      8790  8789  0 01:52 ?        00:00:00 /usr/sbin/keepalived -D
root      8791  8789  0 01:52 ?        00:00:00 /usr/sbin/keepalived -D
root      8799  1349  0 01:53 pts/0    00:00:00 grep --color=auto keepalived
[root@localhost sbin]# ps -ef | grep nginx
root      6073  1349  0  2021 pts/0    00:00:00 vi nginx.conf
root      6162  1349  0  2021 pts/0    00:00:00 vi nginx.conf
root      7570  1349  0  2021 pts/0    00:00:00 vi conf/nginx.conf
root      7859  1349  0  2021 pts/0    00:00:00 vi nginx.conf
root      8780     1  0 01:50 ?        00:00:00 nginx: master process ./nginx
nobody    8781  8780  0 01:50 ?        00:00:00 nginx: worker process
root      8801  1349  0 01:53 pts/0    00:00:00 grep --color=auto nginx
[root@localhost sbin]# 

测试:192.168.17.50虚拟IP测试
在这里插入图片描述在这里插入图片描述
停止主服务器

[root@localhost sbin]# systemctl stop keepalived.service   # 停止keepalived
[root@localhost sbin]# cd /usr/local/nginx/sbin
[root@localhost sbin]# ./nginx -s stop                      #停止nginx          
[root@localhost sbin]# ps -ef | grep keepalived
root      8467  1349  0 00:42 pts/0    00:00:00 vi keepalived.conf
root      8935  1349  0 02:09 pts/0    00:00:00 grep --color=auto keepalived

再次测试
在这里插入图片描述
备份服务器 IP地址
在这里插入图片描述
nginx 实验全部结束

解析配置文件
LVS_SEVEL 可在/etc/hosts/中
在这里插入图片描述在这里插入图片描述

如有疑问可联系博主
bingku2016@126.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值