知足常乐

日常学习的记录与分享

Keepalived+Nginx实现负载均衡&&高可用

对于负载均衡,高可用,分布式概念不太清晰的同学可以移步 理解这些概念的区别

本文将着重讲解Keepalived+Nginx实现负载均衡&&高可用的实现

实验规划

  1. web服务器集群  apahce(1台)+nginx(1台)
  2. web调度器两台(1主一1从),实现高可用

 

案例一–>准备Web网站服务器

[root@svr~]#yum -y install  httpd
[root@svr~]#echo  “16软工1班--奶思”  > /var/www/html/index.html
[root@svr~]#vim /etc/httpd/conf/httpd.conf     //修改端口为80,以免与nginx端口冲突

《Keepalived+Nginx实现负载均衡&&高可用》

[root@svr~]#systemctl restart httpd

 

案例二–>使用压力测试Web网站

[root@web1~]#ab -c 1000 -n 1000 http://127.0.0.1/index.html

//-c表示并发数  -n总访问量次数

《Keepalived+Nginx实现负载均衡&&高可用》

[root@web1~]#ab  -c 10000 -n 10000 http://127.0.0.1/index.html    //增加访问量

//访问失败

《Keepalived+Nginx实现负载均衡&&高可用》

环境说明:由于单台的Web网站服务器会有一个访问量节点,所以我们增加Web网站服务器来分担客户端请求,此案例我们使用Nginx来做局域网的反向代理。

在全班互通的情况下,我们后端的Web集群使用同学之间搭建的Web网站。则无需再去新做多台Web网站。做完之后大家互相访问彼此搭建的调度服务器。拓扑如下:

《Keepalived+Nginx实现负载均衡&&高可用》

案例三–>Nginx源码安装

  • 解压缩包 tar -xf
  • 配置 ./configure
  • 编译 make
  • 安装 make install
[root@svr~]#yum -y install gcc pcre-devel openssl-devel
[root@svr~]#useradd -s /sbin/nologin nginx 
[root@svr~]#tar -xf nginx-1.10.3.tar.gz
[root@svr~]#cd nginx-1.10.3 
[root@svr~]# ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx
[root@svr~]#make 
[root@svr~]#make install 
[root@svr~]#ls /usr/local/nginx

 

 

 

Nginx命令的用法

[root@svr~]#/usr/local/nginx/sbin/nginx                   //启动服务

[root@svr~]#/usr/local/nginx/sbin/nginx -s stop             //停止服务

[root@svr~]#/usr/local/nginx/sbin/nginx -s reload  //重启服务,注意重启时服务时开启的状态

 

查看服务状态

[root@svr~]#ss -anuptl | grep :80

《Keepalived+Nginx实现负载均衡&&高可用》

案例三–>配置Nginx调度服务器

[root@svr~]#vim /usr/local/nginx/conf/nginx.conf

.. ..

 

http {

.. ..

Upstream webserver {                              //定义集群

Server 192.168.7.2 80;                         //后端web1

Server 192.168.7.3 80;                         //后端web2

}

.. ..

server {

listen       80;

server_name localhost;

location / {

proxy_pass http://webserver                           //跳转为集群

}

}

[root@svr~]/usr/local/nginx/sbin/nginx s reload

[root@svr~]curl http://193.168.7.5                  //即可轮询访问两个后端Web网站

 

环境说明:单台Nginx调度会存在调度器的单点故障问题,所以在此基础上我们新添加一台Nginx调度服务器。在全班学员互通的情况下,我们两两组合去做局域网的Nginx调度集群(次环境下大家注意ip分配冲突问题)

《Keepalived+Nginx实现负载均衡&&高可用》

案例四–>配置keepalived

 

[root@svr~]#yum -y install keepalived

[root@svr~]#vim /etc/keepalived/keepalived.conf

将35行之后的全部删除,课堂实验用不到。

 

[root@svr~]#systemctl restart keepalived

《Keepalived+Nginx实现负载均衡&&高可用》

[root@svr~]#ip a show | grep 250

《Keepalived+Nginx实现负载均衡&&高可用》

备用keepalived服务器与主配置文件除state的值为slave、priority的值为80(小于100)即可重启服务。此时会在主服务器上看到vip250,如果把主宕掉之后,会自动转换为主服务器,整个过程全自动,无需人工干预。

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注