我是靠谱客的博主 喜悦往事,最近开发中收集的这篇文章主要介绍Nginx + Keepalived实现高可用的ISO七层负载均衡,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

IP规划

192.168.174.221  Tomcat01(部署前台项目的8080

192.168.174.222  Tomcat02(部署前台项目的8080

192.168.174.223       Nginx01+Keepalived 

192.168.174.224  Nginx02+Keepalived

 

安装环境:

查看是否安装(其他软件包的查看方式都是这样):rpm -q gcc

安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc

yum -y install gcc-c++

 

安装PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginxhttp模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库

yum install -y pcre pcre-devel

 

zlib库提供了很多种压缩和解压缩的方式,nginx使用zlibhttp包的内容进行gzip,所以需要在linux上安装zlib

yum install -y zlib zlib-devel

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

 

nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel

 

编译源码:

tar -zxvf nginx-1.8.0.tar.gz -C /usr/local/

 

cd /usr/local/nginx-1.8.0/

 

注意:下边将临时文件目录指定为/var/temp/nginx,需要在/var下创建tempnginx目录,否则安装的时候会找不到目录

mkdir -p /var/temp/nginx

 

./configure

--prefix=/usr/local/nginx

--pid-path=/var/run/nginx/nginx.pid

--lock-path=/var/lock/nginx.lock

--error-log-path=/var/log/nginx/error.log

--http-log-path=/var/log/nginx/access.log

--with-http_gzip_static_module

--http-client-body-temp-path=/var/temp/nginx/client

--http-proxy-temp-path=/var/temp/nginx/proxy

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi

--http-scgi-temp-path=/var/temp/nginx/scgi

 

执行编译和安装make

会生成一个Makefile

执行安装:make install

 

可以合并:make && make install

 

安装完成在:/usr/local/nginx

 

测试安装:/usr/local/nginx/sbin/nginx

ps aux | grep nginx

 

访问浏览器:

http://192.168.174.223

http://192.168.174.224

 

停止Nginx

强制杀死(不建议使用):/usr/local/nginx/sbin/nginx -s stop

 

完整停止(建议使用)

/usr/local/nginx/sbin/nginx -s quit  (此方式停止步骤是待nginx进程处理任务完毕进行停止)

 

重启

/usr/local/nginx/sbin/nginx -s reload

 

#由于/usr/local/下有个运行SolrTomcat,我们先解压重命名后再移动过去

tar -zxvf apache-tomcat-7.0.47.tar.gz

mv apache-tomcat-7.0.47 /usr/local/apache-tomcat-front

 

配置下Tomcat(为后面的部署做准备)

修改编码

vi /usr/local/apache-tomcat-front/conf/server.xml

URIEncoding="UTF-8"

 

配置一个Tomcat用户

vi /usr/local/apache-tomcat-front/conf/tomcat-users.xml

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<user password="123456" roles="manager-gui, manager-script" username="tomcat"/>

 

配置Nginx

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

#配置一个代理服务器tomcat_server 

upstream tomcat_server { 

server 192.168.174.221:8080 weight=20; 

server 192.168.174.222:8080 weight=10; 

}    

 server {       

listen       80;      

 server_name  localhost;      

 #charset koi8-r;     

  #access_log  logs/host.access.log  main;       

location / {          

 root   html;          

 index  index.html index.htm; 

#配置一个转发 

proxy_pass http://tomcat_server;      

 }

启动两个tomcat和两台nginx测试转发

/usr/local/apache-tomcat-front/bin/startup.sh

/usr/local/nginx/sbin/nginx

访问Nginx(配置了权重,两次会转发221,在一次到222

http://192.168.174.223

http://192.168.174.224

 

223224Nginx搭建Keepalived绑定虚拟IP

yum -y install keepalived

 

查看下当前机器使用的网卡

ifconfig

查看网卡绑定IP的情况

ip add show eth0

配置Nginx主机keepalived配置文件

vi /etc/keepalived/keepalived.conf

 

vrrp_script check_nginx { 

  script "/etc/keepalived/check_nginx.sh" 

  interval 2 

  weight 2

}

 

vrrp_instance VI_1 {  

   state MASTER   

  interface eth0   

  virtual_router_id 51   

  priority 100   

  advert_int 1   

  authentication {       

  auth_type PASS       

  auth_pass 1111   

  }   

  virtual_ipaddress {       

  192.168.174.250  

   }

  track_script { 

  check_nginx

  }

}

#书写监控脚本

cd /etc/keepalived

vi check_nginx.sh

 

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`     

if [ $A -eq 0 ];then                             

       service keepalived stop                 

fi

 

chmod 755 check_nginx.sh

配置Nginxkeepalived配置文件

vi /etc/keepalived/keepalived.conf

 

vrrp_script check_nginx {

        script "/etc/keepalived/check_nginx.sh"

        interval 2

        weight 2

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.174.250

    }

   track_script {

        check_nginx

   }

}

启动keepalived

service keepalived start

查看虚拟IP绑定情况

ip add show eth0   #此时只有主机绑定的,当主机死后,备机才会绑定,由于我们设置了权重,当主机恢复时,备机放弃绑定,主机重新绑定虚拟IP

启动两个tomcat和两台nginx测试转发

/usr/local/apache-tomcat-front/bin/startup.sh

/usr/local/nginx/sbin/nginx

service keepalived start

********************************* 不积跬步无以至千里,不积小流无以成江海 ********************************* 

 

最后

以上就是喜悦往事为你收集整理的Nginx + Keepalived实现高可用的ISO七层负载均衡的全部内容,希望文章能够帮你解决Nginx + Keepalived实现高可用的ISO七层负载均衡所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部