centos7 搭建keepalived+Nginx+tomcat

准备1台 192.168.2.224  安装Nginx,2台安装tomcat   192.168.2.222   192.168.2.223

1、安装Nginx:

      上传pcre-8.36.tar.gz、zlib-1.2.8.tar.gz到服务器

      下载地址:pcre-8.36.tar.gz             https://o3cex9zsl.qnssl.com/libs/nginx/pcre-8.36.tar.gz

           zlib-1.2.8.tar.gz            https://o3cex9zsl.qnssl.com/libs/nginx/zlib-1.2.8.tar.gz

      #######新建nginx用户和nginx组

      [[email protected]]# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx 

      #######yum安装nginx必须的依赖库

       [[email protected]]#yum -y install openssl openssl-devel libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed

        #######官网下载Nginx1.9.0的tar包,然后解压到服务器上

        [[email protected] jason]# wget -c http://nginx.org/download/nginx-1.9.0.tar.gz

        [[email protected] jason]# tar -zxf nginx-1.9.0.tar.gz && cd nginx-1.9.0 

      上传pcre-8.36.tar(支持Nginx的Rewrite功能)、zlib-1.2.8.tar(支持Nginx的Gzip压缩功能)

      #######新建Nginx1.9.0安装时所需要的目录

        [[email protected] nginx-1.9.0]# cd /var/tmp/ && mkdir  -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}

       [[email protected] tmp]# mkdir -p /var/run/nginx && cd /home/jason/nginx-1.9.0

       [[email protected] nginx-1.9.0]#

 ./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/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --conf-path=/usr/local/nginx/conf/nginx.conf --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi  --sbin-path=/usr/sbin/nginx

      具体的含义:

[[email protected] nginx-1.9.0]make && make install

上传脚本Nginx到/etc/init.d 并赋予只读权限,将Nginx服务添加到启动项并给予开机自动启动,启动Nginx服务

Nginx

  1 #! /bin/bash
  2 #
  3 # nginx - this script starts and stops the nginx daemon
  4 #
  5 # chkconfig:   - 85 15
  6 # description:  Nginx is an HTTP(S) server, HTTP(S) reverse   7 #               proxy and IMAP/POP3 proxy server
  8 #
  9 # processname: nginx
 10 # config:      /etc/nginx/nginx.conf
 11 # pidfile:     /var/run/nginx/nginx.pid
 12
 13 # Source function library.
 14 . /etc/rc.d/init.d/functions
 15
 16 # Source networking configuration.
 17 . /etc/sysconfig/network
 18
 19 # Check that networking is up.
 20 [ "$NETWORKING" = "no" ] && exit 0
 21
 22 nginx="/usr/sbin/nginx"
 23 prog=$(basename $nginx)
 24
 25 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
 26
 27 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 28
 29 lockfile=/var/lock/nginx.lock
 30
 31 start() {
 32     [ -x $nginx ] || exit 5
 33     [ -f $NGINX_CONF_FILE ] || exit 6
 34     echo -n $"Starting $prog: "
 35     daemon $nginx -c $NGINX_CONF_FILE
 36     retval=$?
 37     echo
 38     [ $retval -eq 0 ] && touch $lockfile
 39     return $retval
 40 }
 41
 42 stop() {
 43     echo -n $"Stopping $prog: "
 44     killproc $prog -QUIT
 45     retval=$?
 46     echo
 47     [ $retval -eq 0 ] && rm -f $lockfile
 48     return $retval
 49 }
 50
 51 restart() {
 52     configtest || return $?
 53     stop
 54     sleep 1
 55     start
 56 }
 57
 58 reload() {
 59     configtest || return $?
 60     echo -n $"Reloading $prog: "
 61     killproc $nginx -HUP
 62     RETVAL=$?
 63     echo
 64 }
 65
 66 force_reload() {
 67     restart
 68 }
 69
 70 configtest() {
 71   $nginx -t -c $NGINX_CONF_FILE
 72 }
 73
 74 rh_status() {
 75     status $prog
 76 }
 77
 78 rh_status_q() {
 79     rh_status >/dev/null 2>&1
 80 }
 81
 82 case "$1" in
 83     start)
 84         rh_status_q && exit 0
 85         $1
 86         ;;
 87     stop)
 88         rh_status_q || exit 0
 89         $1
 90         ;;
 91     restart|configtest)
 92         $1
 93         ;;
 94     reload)
 95         rh_status_q || exit 7
 96         $1
 97         ;;
 98     force-reload)
 99         force_reload
100         ;;
101     status)
102         rh_status
103         ;;
104     condrestart|try-restart)
105         rh_status_q || exit 0
106             ;;
107     *)
108         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
109         exit 2
110 esac

[[email protected] init.d]chkconfig --add nginx

[[email protected] init.d]chkconfig nginx  on

[[email protected] init.d]service nginx  start

查看安装的Nginx1.9.0的详细信息

[[email protected] init.d]# nginx -V

nginx version: nginx/1.9.0

built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)

configure arguments: --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/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --conf-path=/usr/local/nginx/conf/nginx.conf --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --sbin-path=/usr/sbin/nginx

2、安装tomcat

    

查看现有版本、卸载并安装jdk1.8

[[email protected] jason]# java -version

java version "1.7.0_51"

[[email protected] jason]# rpm -qa |grep jdk

[[email protected] jason]# yum remove java-1.7.0-openjdk

[[email protected] jason]# ls

apache-tomcat-9.0.4.tar.gz  Desktop  Documents  Downloads  jdk-8u11-linux-x64.rpm  Music  Pictures  Public  Templates  Videos

[[email protected] jason]# rpm -ivh jdk-8u11-linux-x64.rpm

Preparing...                          ################################# [100%]

Updating / installing...

1:jdk-2000:1.8.0_11-fcs            ################################# [100%]

Unpacking JAR files...

rt.jar...

jsse.jar...

charsets.jar...

tools.jar...

localedata.jar...

jfxrt.jar...

[[email protected] jason]# java -version

java version "1.8.0_11"

Java(TM) SE Runtime Environment (build 1.8.0_11-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

[[email protected] jason]# cd /usr/local/

[[email protected] local]# mkdir tomcat

[[email protected] local]# ls

bin  etc  games  include  lib  lib64  libexec  sbin  share  src  tomcat

解压apache-tomcat-9.0.4并移动到/usr/local/tomcat/

[[email protected] jason]# mv apache-tomcat-9.0.4  /usr/local/tomcat/

打开文件 /etc 目录下的 profile 文件,将如下代码追加到 profile 文件末尾:

# idea - tomcat9 config start - 2018-7-24

export CATALINA_HOM=/usr/local/tomcat/apache-tomcat-9.0.4
export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.4
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-9.0.4

# idea - tomcat9 config end - 2018-7-24

修改 tomcat 的端口号和字符编码

vim   /usr/local/tomcat/apache-tomcat-9.0.4/conf/server.xml

找到如下代码:
  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
 将其中的 8080 改成 HTTP 协议的默认端口 80,改后的代码如下:
  <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

增加 manager-gui 图形化管理界面的访问权限(不需要的话,此步骤可忽略):

[[email protected] tomcat]# cd apache-tomcat-9.0.4/conf/

[[email protected] conf]# ls

catalina.policy  catalina.properties  context.xml  jaspic-providers.xml  jaspic-providers.xsd  logging.properties  server.xml  tomcat-users.xml  tomcat-users.xsd  web.xml

[[email protected] conf]# vim  tomcat-users.xml

  1. 在 </tomcat-users> 标签前加入如下代码:

<role rolename="admin-gui"/>  

<role rolename="admin-script"/>  

<role rolename="manager-gui"/>  

<role rolename="manager-script"/>  

<role rolename="manager-jmx"/>  

<role rolename="manager-status"/>  

<user username="tomcat" password="mytomcatadmin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

进入

[[email protected] apache-tomcat-9.0.4]# cd webapps/manager/META-INF/

[[email protected] META-INF]# vi context.xml

进入

[[email protected]]#cd /usr/local/tomcat/apache-tomcat-9.0.4/webapps/host-manager/META-INF/

[[email protected] META-INF]# vim context.xml

(或者和上面的一样注释掉)
 这里设置的 username 是tomcat;password 都是 mytomcatadmin,角色为 manager-gui;

如果要某网段可以访问tomcat

在tomcat-users.xml里添上几句即可

打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml,这个文件的内容是: 
<Context antiResourceLocking="false" privileged="true" > 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" /> 
</Context>

通过查看官方文档,知道,这段代码的作用是限制来访IP的,127.d+.d+.d+|::1|0:0:0:0:0:0:0:1,是正则表达式,表示IPv4和IPv6的本机环回地址,所以这也解释了,为什么我们本机可以访问管理界面,但是其他机器确403。

找到原因了,那么修改一下这里的正则表达式即可,比如我们只允许内网网段192.168.2访问管理页面,那么改成这样就可以: 
<Context antiResourceLocking="false" privileged="true" > 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" 
allow="192.168.2.*" /> 
</Context>

修改完毕,关闭浏览器,重新打开tomcat,问题解决!

进入到 /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin 目录中:
 cd ../bin/

打开 vi catalina.sh 文件:

在 # OS specific support. 上面一行加入如下代码(不能有空格):

JAVA_HOME=/usr/java/jdk1.8.0_11/

JRE_HOME=$JAVA_HOME/jre

查看java_home目录
 [[email protected] bin]# rpm -qa|grep jdk

jdk-1.8.0_11-fcs.x86_64

[[email protected] bin]# rpm -ql jdk-1.8.0_11-fcs.x86_64

启动 tomcat 服务:
 ./startup.sh
 打印如下信息则表明启动 Tomcat 服务成功:
[[email protected] bin]# ./startup.sh

Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.4

Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.4

Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.4/temp

Using JRE_HOME:        /usr/java/jdk1.8.0_11//jre

Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.4/bin/tomcat-juli.jar

Tomcat started.
 打开浏览器输入 IP(修改测试页面)

进入

/usr/local/tomcat/apache-tomcat-9.0.4/webapps/ROOT

修改index.jsp

简化启动服务

cd /etc/init.d/

vim tomcat

# idea - tomcat config start - 2018-2-1

  #!/bin/bash
   # description: Tomcat Start Stop Restart
   # processname: tomcat
   # chkconfig: 2345 20 80
   JAVA_HOME=/usr/java/jdk1.8.0_11/
   export JAVA_HOME
   PATH=$JAVA_HOME/bin:$PATH
   export PATH
   CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.4

   case $1 in
   start)
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   stop)
     sh $CATALINA_HOME/bin/shutdown.sh
   ;;
   restart)
     sh $CATALINA_HOME/bin/shutdown.sh
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   esac
   exit 0

   #chmod 755 tomcat
   #chkconfig --add tomcat
   #chkconfig --level 2345 tomcat on
   #chkconfig --list tomcat

  # idea - tomcat config end - 2018-2-1

[[email protected] conf] chmod +x tomcat

[[email protected] conf]chkconfig  --add tomcat

[[email protected] conf]chkconfig  tomcat on

启动tomcat

进入/usr/local/tomcat/apache-tomcat-9.0.4/bin

[[email protected] bin]# ./startup.sh

[[email protected] bin]# ./shutdown.sh   (更改配置文件之后重新加载需要停止tomcat再启用)

开机自动启动

vi /etc/rc.d/rc.local  添加

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

linux 系统中的 /etc 目录表示“设备”,意为与硬件设备相关的信息;
 /etc/init.d 目录下的文件表示当前设备的初始化配置信息;
 命令 chkconfig 表示添加(--add)、删除(--del)、查看(--list)

3、修改Nginx配置文件(192.168.2.224

cd  /usr/local/nginx/conf

vim nginx.conf

在server配置的上面新增upstream 配置,后面的“server_tomcat”相当于该配置别名,供后面的“proxy_pass”配置使用。

upstream 里面配置的就是2个tomcat的访问地址,IP:端口号,不用写http:// 。

proxy_pass 转发定位到upstream 里面配置的多台服务器proxy_pass 配置的http:// 必须要写。(不是https)

修改完成后,重新加载nginx服务的配置

nginx -s reload

看到这,肯定会有人有疑问,如果有一台服务器突然挂掉了怎么办?别急,这种情况nginx已经给我们处理了,当有台服务器挂掉了,nginx默认不会访问挂掉的服务,继续访问其他正在运行的服务,提供了很好的容错机制。

能不能让两台服务器访问的概率不一样了?能,nginx给我们提供了 weight这个属性,可以给各个服务器分配权重,配置如下:

weight 默认为1.weight越大,负载的权重就越大。

通过上面的配置,刷新页面,会发现访问tomcat1的概率明显比访问tomcat2的概率大。

PS:upstream目前支持5种方式的分配

1、轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    例如:
  

  1. upstream bakend {

  2.  

      server 192.168.0.14 weight=10;

  3.  

      server 192.168.0.15 weight=10;

  4.  

    }

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

  1. upstream bakend {

  2.  

      ip_hash;

  3.  

      server 192.168.0.14:88;

  4.  

      server 192.168.0.15:80;

  5.  

    }

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

  1. upstream backend {

  2.  

      server server1;

  3.  

      server server2;

  4.  

      fair;

  5.  

    }

5、url_hash(第三方)
  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
  例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

  1. upstream backend {

  2.  

      server squid1:3128;

  3.  

      server squid2:3128;

  4.  

      hash $request_uri;

  5.  

      hash_method crc32;

  6.  

    }

  7.  

      tips:

  8.  

      upstream bakend{#定义负载均衡设备的Ip及设备状态

  9.  

      ip_hash;

  10.  

      server 127.0.0.1:9090 down;

  11.  

      server 127.0.0.1:8080 weight=2;

  12.  

      server 127.0.0.1:6060;

  13.  

      server 127.0.0.1:7070 backup;

  14.  

    }

在需要使用负载均衡的server中增加

 proxy_pass http://bakend/;

每个设备的状态设置为:
  1.down 表示单前的server暂时不参与负载
  2.weight 默认为1.weight越大,负载的权重就越大。
  3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
  4.fail_timeout:max_fails次失败后,暂停的时间。
  5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
  nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
  client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
  client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
  location 对URL进行匹配。可以进行重定向或者进行新的代理 负载均衡

3、安装keepalive

yum  install -y keepalived

修改config文件

vim /etc/keepalived\keepalived.conf

keepalived.conf各项的含义

MASTER

! Configuration File for keepalived

#全局配置

global_defs {

   #keepalived切换的时候,发消息到指定的email,可配置多个email

   notification_email {

     [email protected]

[email protected]

   }

   #通知邮件从哪个地址发出

   notification_email_from [email protected]

   #通知邮件的smtp地址

   smtp_server smtp.exmail.qq.com

   #连接smtp服务器的超时时间,单位秒

   smtp_connect_timeout 30

   #Keepalived的机器标识,一个网络内保持唯一

   router_id nginx-master

}

#执行脚本配置

vrrp_script chk_nginx {

#脚本所在路径

    script "/home/project/keepalived/check_nginx.sh"

#脚本执行间隔时间,秒

    interval 2

#优先级

    weight 2

}

#keepalived实例配置

vrrp_instance VI_1 {

#指定实例的初始状态,MASTER或BACKUP两种状态,并且需要大写

    state MASTER

#实例绑定的网卡

    interface ens33

#虚拟路由标识,是一个数字,整个VRRP内唯一,如果keepalived配置了主备,需要相同

    virtual_router_id 51

#优先级,数值愈大,优先级越高

    priority 100

#MASTER与BACKUP之间同步检查的时间间隔,单位为秒

    advert_int 1

#通信验证

    authentication {

        auth_type PASS

        auth_pass feinik

    }

#追踪外围脚本

    track_script {

    #这里配置vrrp_script的名称

        chk_nginx

    }

#虚拟ip配置,可配置多个

    virtual_ipaddress {

        192.168.10.200

    }

}

BACKUP

! Configuration File for keepalived

#全局配置

global_defs {

   #keepalived切换的时候,发消息到指定的email,可配置多个email

   notification_email {

     [email protected]

[email protected]

   }

   #通知邮件从哪个地址发出

   notification_email_from [email protected]

   #通知邮件的smtp地址

   smtp_server smtp.exmail.qq.com

   #连接smtp服务器的超时时间,单位秒

   smtp_connect_timeout 30

   #Keepalived的机器标识,一个网络内保持唯一

   router_id nginx-master

}

#执行脚本配置

vrrp_script chk_nginx {

#脚本所在路径

    script "/home/project/keepalived/check_nginx.sh"

#脚本执行间隔时间,秒

    interval 2

#优先级

    weight 2

}

#keepalived实例配置

vrrp_instance VI_1 {

#指定实例的初始状态,MASTER或BACKUP两种状态,并且需要大写

    state BACKUP

#实例绑定的网卡

    interface ens33

#虚拟路由标识,是一个数字,整个VRRP内唯一,如果keepalived配置了主备,需要相同

    virtual_router_id 51

#优先级,数值愈大,优先级越高

    priority 99

#MASTER与BACKUP之间同步检查的时间间隔,单位为秒

    advert_int 1

#通信验证

    authentication {

        auth_type PASS

        auth_pass feinik

    }

#追踪外围脚本

    track_script {

    #这里配置vrrp_script的名称

        chk_nginx

    }

#虚拟ip配置,可配置多个

    virtual_ipaddress {

        192.168.10.200

    }

}

我的实验配置

master

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0

}

vrrp_script chk_nginx {
  script "/etc/keepalived/nginx_check.sh"
  interval 3
  weight 2
}
vrrp_instance VI_1 {
    state MASTER
    interface enp0s17
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PAS
        auth_pass 1111
    }
    track_script {
       chk_nginx
    }
    virtual_ipaddress {
        192.168.2.226
    }

}

backup

! Configuration File for keepalived

global_defs {
   ...
}

rrp_script chk_nginx {
  script "/etc/keepalived/nginx_check.sh"
  interval 3
  weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface enp0s17
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.2.226
    }
}

查看VIP(ip addr)

nginx_check.sh脚本(赋予只读权限 chmod +x  nginx_check.sh)

如果 nginx 停止运行,尝试启动,如果无法启动则杀死本机的 keepalived 进程,keepalived将虚拟 ip 绑定到 BACKUP 机器上。内容如下:

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
    /home/wangzi/soft/nginx/sbin/nginx
    sleep 5
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

测试

    

原文地址:https://www.cnblogs.com/jpfss/p/10090316.html

时间: 2024-10-30 08:12:40

centos7 搭建keepalived+Nginx+tomcat的相关文章

LVS+Keepalived+Nginx+Tomcat高可用集群搭建(转)

LVS+Keepalived+Nginx+Tomcat高可用集群搭建 最近公司重整架构,十几台服务器而且还要尽可能节约成本.我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用.虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出Keepalived和Nginx的配置即可后面的一些安装搭建完全是本人项目需要可以不用理睬仅供参考. 本文只是实验搭建记录方便以后在服务器中实施搭建.

搭建LVS+Keepalived+nginx+tomcat高可用性,高性能jsp集群

LVS-master:192.168.0.210 LVS-backup:192.168.0.211 LVS-VIP:192.168.0.209 nginx+tomcat:192.168.0.212 nginx+tomcat:192.168.0.227 安装nginx所需包: Nginx-1.6.0.tar.gz和pcre-8.35.zip 一.安装pcre-8.35 1 #unzip pcre-8.35.zip 2 #cd pcre-8.35 3 #./configure 4 #make 5 #

keepalived+nginx+tomcat搭建高性能web服务器集群

使用keepalived+nginx+tomcat搭建高性能web服务器集群,系统采用centos6.9,前端用nginx做反向代理实现负载均衡,同时结合keepalived对nginx实现高可用,后端使用两台tomcat做动态jsp解析,实现了动静分离. 搭建环境 准备四台服务器 vip: 192.168.75.130master: 192.168.75.131 (安装nginx做反向代理实现负载匀衡,结合keepalived实现高可用)backup: 192.168.75.132 (同上)w

Ubuntu下配置 keepalived+nginx+tomcat 负载均衡

本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角色: Tomcat – 应用服务器 Nginx – 反向代理服务器,作为负载均衡器 Keepalived – 用以检测 Nginx 状态,保证高可用 整个环境都在Virtual Box中的虚拟机上完成,以下是要完成此环境需要的软件: Oracle VM Virtual Box 4.3 Ubuntu

Keepalived+Nginx+Tomcat 实现高可用Web集群(转)

Keepalived+Nginx+Tomcat 实现高可用Web集群 溯水心生 关注 2018.01.08 20:28* 字数 1382 阅读 965评论 1喜欢 9 集群规划图片 一.Nginx的安装过程 1.下载Nginx安装包,安装依赖环境包 (1)安装 C++编译环境 yum -y install gcc #C++ (2)安装pcre yum -y install pcre-devel (3)安装zlib yum -y install zlib-devel (4)安装Nginx 定位到n

keepalived+nginx+tomcat的简单部署

keepalived+nginx Keepalived是一个基于VRRP协议来实现的服务高可用方案,也是一种高性能的服务器高可用或热备解决方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker.但是它一般不会单独出现,而是与其它负载均衡技术(如lvs.haproxy.nginx)一起工作来达到集群的高可用.为了更好的实现页面的调用,通过部署Keepalived+nginx来实现负载均衡,使得nginx高可靠性运行.基于Keepalived设计的

lvs+keepalived+nginx+tomcat高可用高性能集群部署

2台前端 keepalived+lvs,热备的方式,保证一台lvs前端能正常访问就行,如果一台down,另外一台热备升级到master主机 master: 192.168.1.210 ubuntu 12.0.4 salve: 192.168.1.211 ubuntu 12.0.4 后端2台web服务器通过lvs的算法轮询被访问 web1: 192.168.1.204 centos 5.10 nginx+tomcat web2: 192.168.1.206 centos 5.10 nginx+to

LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Redhat提供的工具piranha来配置LVS 软件下载: ipvsadm下载地址: http://www.linuxvirtualserver.org/software/kernel-2.6/ Keepalived下载地址: http://www.keepalived.org/software/ 安装

centos7下keepalived+nginx配置

一.系统架构: 角色 内网ip 外网ip keepalived+nginx 192.168.8.81 192.168.8.201 keepalived+nginx 192.168.8.82 192.168.8.201 web1 192.168.8.83 - web2 192.168.8.84 - 二.nginx配置(两台nginx配置一模一样): 安装: yum -y install nginx 配置:vim /etc/nginx/nginx.conf user nginx; worker_pr