精华内容
下载资源
问答
  • 关于weblogic 双机集群搭建方案

    千次阅读 2017-02-20 09:16:00
    tomcat:免费,个头小,java标准规范 weblogic: 商业化,庞大,周边支持 所以因为项目有钱呗 下面详解一下该文章搭建weblogic后会遇到的问题:   1. 主机名验证失败  javax.net.ssl....

    为什么使用weblogic?

    tomcat:免费,个头小,java标准规范
    weblogic: 商业化,庞大,周边支持

    所以因为项目有钱呗得意

    下面详解一下该文章搭建weblogic后会遇到的问题:

     

    1. 主机名验证失败

        javax.net.ssl.SSLKeyException: [Security:090482]BAD_CERTIFICATE alert was received from 192.168.140.3 - 192.168.140.3. Check the peer to determine why it rejected the   certificate chain (trusted CA configuration, hostname verification). SSL debug tracing may be required to determine the exact reason the certificate was rejected.

    解决办法:

      1.将主机节点和受管节点的SLL-->高级-->主机名验证--选择无 然后重启服务

        2.将新建的计算机与对于物理计算机和名称(hostname)保持一致就可以了

      

    2.节点管理器用户名和密码认证失败

      这种情况发生在,主机点在主机1上,受管节点在主机2上,控制台新建的计算机指向主机2状态为不可访问

     

    <Feb 19, 2017 3:24:59 AM PST> <Error> <NodeManager> <BEA-300033> <Could not execute command "getVersion" on the node manager. Reason: "Access to domain 'test' for user 'GrzVthu3HW' denied".> 

    解决办法:

     

          第一步,在主管理服务器console上域的安全页设置nodemanager的用户名和密码
          第二步,到主机 2的域下面修改这个文件(注意是域下面config下的nm_password.properties不是节点管理器下面的nm_password.properties),username=weblogic  password=password

      /weblogic/Oracle/Middleware/user_projects/domains/test/config/nodemanager/nm_password.properties

          第三步,重启主机2的nodemanager
     
    3.  主机2受管节点启动时报错

        i.<BEA-090870> <The realm "myrealm" failed to be loaded: weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException:     weblogic.security.spi.ProviderInitializationException: A failure occurred attempting to load LDIF for provider Authorizer from file     /weblogic/Oracle/Middleware/wlserver_10.3/server/lib/XACMLAuthorizerInit.ldift..weblogic.security.service.SecurityServiceException:     com.bea.common.engine.ServiceInitializationException: 

        ii.weblogic.security.service.SecurityServiceRuntimeException: [Security:090399]Security Services Unavailable

             iii.<BEA-000000> <Could not decrypt the username attribute value of {AES}IpCKAeINnBv0Zk8gHfvSFbISdyT5E0nUkbv6GqPQGfo= from the file                           /weblogic/Oracle/Middleware/user_projects/domains/test/servers/server_03/data/nodemanager/boot.properties.

       解决办法:

                   这个错误是因为主机2的受管节点需要从主机1的管理服务器上下面相关启动的配置信息,安全服务认证不通过,导致的,将主机2域下面的security 文件全部替换为主机1的文件

     

       /weblogic/Oracle/Middleware/user_projects/domains/test/security 重新启动服务,启动成功

     

    总结:

      按照wenlogic双机集群基本步骤

      这个基本步骤搭建双机集群后会出现很多问题,对于初学者来说很麻烦。

       建议:主机1搭建步骤按照文章给出的步骤一步一步搭建,主机2直接将主机1新建的域拷贝一份放到对于的目录下面就可以了,无须再重新搭建域,这个搭建之后启动只需要解决主机名认证的问题,双机集群

    就搭建成功了。

    展开全文
  • nginx双机高可用及Tomcat集群负载均衡 ********试验环境及常用命令******************** ---》试验机器 192.188.32.83 tomcat1 192.188.32.55 tomcat2 ---》nginx linux下安装 参考 ...
    nginx双机高可用及Tomcat集群负载均衡

    ********试验环境及常用命令********************
    ---》试验机器
    192.188.32.83 tomcat1
    192.188.32.55 tomcat2

    ---》nginx linux下安装
    参考 http://limaoyuan.iteye.com/blog/904352

    注意:其实把pcre-devel-7.8-3.1.el6.i686.rpm(在cd安装盘上找)安装过去就能正确编译。
    ---》tomcat 安装(略)

    ---》启动关闭tomcat服务器
    /usr/local/apache-tomcat-6.0.32/bin/startup.sh
    /usr/local/apache-tomcat-6.0.32/bin/shutdown.sh
    ---》配置nginx文件
    vi /usr/local/nginx/conf/nginx.conf
    ---》启动nginx
    /usr/local/nginx/sbin/nginx
    ---》关闭nginx
    关闭nginx
    # ps -ef |grep nginx
    root 3462 1 0 13:07 ? 00:00:00 nginx: master process ./nginx
    nobody 3463 3462 0 13:07 ? 00:00:00 nginx: worker process
    root 3467 31523 0 13:08 pts/1 00:00:00 grep nginx
    # kill 3462

    ******单nginx 配置tomcat集群(单机)负载均衡************
    参考:http://ari.iteye.com/blog/833153

    ******单nginx 配置tomcat集群(多机器)负载均衡**********
    ---》分别在两台试验机器上Tomcat web服务器
    分别修改两套tomcat的ROOT/index.html ,在<body>中加入
    <h2>from tomcat1: 192.188.32.83</h2>
    <h2>from tomcat2: 192.188.32.85</h2>
    便于观察。

    ---》在192.188.32.83上部署nginx ,配置参考

    #user nobody;
    user root root;
    worker_processes 4;

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #pid logs/nginx.pid;


    events {
    #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue
    use epoll;
    worker_connections 1024;
    }


    http {
    include mime.types;
    default_type application/octet-stream;

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log logs/access.log main;

    sendfile on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout 65;

    #gzip on;

    upstream tomcat {
    server 192.188.32.83:8080;
    server 192.188.32.55:8080;
    }

    server {
    listen 80;
    server_name 192.188.32.83;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    root html;
    index index.html index.htm;
    proxy_pass http://tomcat;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }
    }

    ---》测试
    测试一:启动 nginx\tomcat1\tomcat2
    访问http://192.188.32.83/ 观察,会轮询83和85两台服务器。
    测试二:关闭 tomcat1
    访问http://192.188.32.83/ 观察,能正常访问85web服务器。
    测试三:启动tomcat1
    访问http://192.188.32.83/ 观察,会轮询83和85两台服务器。
    测试四:关闭tomcat2 结果参考上述步骤

    ******双机nginx 配置tomcat集群(多机器)负载均衡**********
    单nginx 配置tomcat集群(单机)负载均衡、单nginx 配置tomcat集群(多机器)负载均衡
    缺陷是高度依赖负载均衡服务器,负载均衡服务器故障会导致整个网络无法访问,所以考虑把负载均衡服务器也做成双机高可用。

    --》方案
    采用 linux虚拟ip(ip漂移技术)实现Nginx双机高可用。下述为虚拟ip阐述了ip虚拟技术:

    通常情况下,两台服务器都具有一块以上的网卡,每块网卡都应该有一个IP地址,同时,还应该有一个漂移IP地址,该地址为工作IP地址。因此,最简单的主从方式下,双机系统要占用3个网络地址。
    在分配IP地址时,要分清工作IP地址和主机自由地址。如在主从方式、单网卡的情况下,主机一地址为200.10.10.1,主机二的地址为200.10.10.2,工作地址为200.10.10.3,正常情况下,工作主机的自由地址是被工作地址取代的(若主机一在工作,主机一得地址由200.10.10.1变为200.10.10.3)。在发生主机切换的情况下,主机一的地址恢复为200.10.10.1,而主机二的地址会由200.10.10.2变为200.10.10.3,这就是地址漂移。

    网卡上增加一个IP:
    /sbin/ifconfig eth0:1 192.168.3.104 netmask 255.255.255.0
    /sbin/route add -host 192.168.3.104 dev eth0:1
    删除网卡的第二个IP地址:
    ip addr del 192.168.0.1 dev eth0

    ---》分别给两台服务器配置虚拟ip
    两台机器的虚拟ip定为 192.188.32.81

    ***32.83添加虚拟ip
    /sbin/ifconfig eth1:1 192.188.32.81 netmask 255.255.255.0
    /sbin/route add -host 192.188.32.81 dev eth1:1

    ***32.85添加虚拟ip
    /sbin/ifconfig eth0:1 192.188.32.81 netmask 255.255.255.0
    /sbin/route add -host 192.188.32.81 dev eth0:1

    --》分别安装nginx和tomcat

    ---》nginx配置参考

    #user nobody;
    user root root;
    worker_processes 4;

    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #pid logs/nginx.pid;


    events {
    #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue
    use epoll;
    worker_connections 1024;
    }


    http {
    include mime.types;
    default_type application/octet-stream;

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log logs/access.log main;

    sendfile on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout 65;

    #gzip on;

    upstream tomcat {
    server 192.188.32.83:8080;
    server 192.188.32.55:8080;
    }

    server {
    listen 80;
    #####需要修改的地方###
    server_name 192.188.32.81;

    #charset koi8-r;

    #access_log logs/host.access.log main;

    location / {
    root html;
    index index.html index.htm;
    proxy_pass http://tomcat;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    }

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }
    }

    ---》测试
    测试1:启动两台tomcat、nginx,访问 http://192.188.32.81/,结果能正常访问;
    测试2:关闭某一台nginx,访问 http://192.188.32.81/,结果能正常访问;
    (可以关闭nginx,或删除虚拟ip模拟服务器故障情况)

    **删除83上的虚拟ip
    ip addr del 192.188.32.81 dev eth1
    **删除55上的虚拟ip
    ip addr del 192.188.32.81 dev eth0

    参考:
    http://limaoyuan.iteye.com/blog/904352
    http://ari.iteye.com/blog/833153
    http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html
    http://www.php100.com/html/program/nginx/2013/0905/5525.html
    展开全文
  • 双机主从热备作用: 可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高...

    1.前言

    LVS作用:
    LVS是一个开源的软件,可以实现传输层四层负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
    Keepalived作用:
    LVS可以实现负载均衡,但是不能够进行健康检查,比如一个rs出现故障,LVS 仍然会把请求转发给故障的rs服务器,这样就会导致请求的无效性。keepalive 软件可以进行健康检查,而且能同时实现 LVS 的高可用性,解决 LVS 单点故障的问题,其实 keepalive 就是为 LVS 而生的。
    双机主从热备作用:
    可以两台机子互为热备,平时各自负责各自的服务。在做上线更新的时候,关闭一台服务器的tomcat后,nginx自动把流量切换到另外一台服务的后备机子上,从而实现无痛更新,保持服务的持续性,提高服务的可靠性,从而保证服务器7*24小时运行。
    注意:阿里云云服务器不支持再单独购买 IP,无法安装配置 keepalived,进行负载均衡。如果需要配置负载均衡,可以直接购买负载均衡,进行负载均衡配置。

    2.环境

    1.由于项目部署是springboot2.0,所以用jdk1.8
    2.Centos7

    服务器名称 ip
    nginx+LVS_master 192.168.8.148
    nginx+LVS_backup 192.168.8.84
    tomcat_master_group1 192.168.8.115:8081
    tomcat_backup_group1 192.168.8.89:8082
    tomcat_master_group2 192.168.8.68:8083
    tomcat_backup_group2 192.168.8.64:8084
    VIP(虚拟ip) 192.168.8.145

    在这里插入图片描述

    3.keepalived搭建

    3.1keepalived安装

    命令1:

    yum -y install wget
    

    命令2(下载):

    wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
    

    命令3(下载插件openssl):

    yum install -y openssl openssl-devel
    

    命令4(安装popt的开发包):

    yum install popt-devel
    

    命令5(安装gcc):

    yum install gcc-c ++
    

    命令6(编译):

    cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
    

    命令7(安装):

    make && make install
    

    3.2keepalived安装成Linux系统服务

    将keepalived安装成Linux系统服务,因为没有使用keepalived的默认安装路径(默认路径:/usr/local),安装完成之后,需要做一些修改工作:

    命令1:

    mkdir /etc/keepalived
    

    命令2:

    cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
    

    命令3:

    cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    

    命令4:

    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    

    命令5:

    ln -s /usr/local/sbin/keepalived /usr/sbin/
    

    命令6:

    ln -s /usr/local/keepalived/sbin/keepalived /sbin/
    

    命令7:

    chkconfig keepalived on
    

    3.3keepalived 启动、停止、重启命令

    service keepalived start
    service keepalived stop
    service keepalived restart
    

    3.4添加nginx宕机重启脚本

    在目录/etc/keepalived/下添加nginx_check.sh

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

    注意该脚本一定要授权
    chmod 777 nginx_check.sh

    3.5修改主keepalived配置

    命令1:

    vi /etc/keepalived/keepalived.conf
    

    配置信息如下:

    ! Configuration File for keepalived
    
    vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
        interval 2 #检测时间间隔
        weight -20 #如果条件成立的话,则权重 -20
    }
    # 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
    vrrp_instance VI_1 {
        state MASTER #来决定主从
        interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
        virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
        mcast_src_ip 192.168.8.148 #填写本机ip
        priority 100 # 节点优先级,主要比从节点优先级高
        nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
        advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        # 将 track_script 块加入 instance 配置块
        track_script {
            chk_nginx #执行 Nginx 监控的服务
        }
    
        virtual_ipaddress {
            192.168.8.145 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
        }
    }
    
    

    3.6修改备keepalived配置

    命令1:

    vi /etc/keepalived/keepalived.conf
    

    配置信息如下:

    ! Configuration File for keepalived
    
    vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh" #运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务
        interval 2 #检测时间间隔
        weight -20 #如果条件成立的话,则权重 -20
    }
    # 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
    vrrp_instance VI_1 {
        state BACKUP #来决定主从
        interface ens33 # 绑定虚拟 IP 的网络接口,根据自己的机器填写
        virtual_router_id 121 # 虚拟路由的 ID 号, 两个节点设置必须一样
        mcast_src_ip 192.168.212.84 #填写本机ip
        priority 100 # 节点优先级,主要比从节点优先级高
        nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
        advert_int 1 # 组播信息发送间隔,两个节点设置必须一样,默认 1s
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        # 将 track_script 块加入 instance 配置块
        track_script {
            chk_nginx #执行 Nginx 监控的服务
        }
    
        virtual_ipaddress {
            192.168.8.145 # 虚拟ip,也就是解决写死程序的ip怎么能切换的ip,也可扩展,用途广泛。可配置多个。
        }
    }
    
    

    4.Nginx搭建

    4.1Nginx安装

    可以参考以下链接:
    https://blog.csdn.net/dsen726/article/details/79637519

    4.2Nginx主配置修改

    命令1:

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

    配置信息如下:

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
    	upstream testproxy {
          server 192.168.8.115:8081;
          server 192.168.8.84:8082 backup;
        }
    	
    	server {
            listen       80;
            server_name  localhost;
    
        
    
            location / {
                proxy_pass   http://testproxy;
                index  index.html index.htm;
            }
    	     ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
    	      proxy_connect_timeout 1s;
    		 ###nginx发送给上游服务器(真实访问的服务器)超时时间
             proxy_send_timeout 1s;
    	      ### nginx接受上游服务器(真实访问的服务器)超时时间
             proxy_read_timeout 1s;
    
        }
    
    }
    

    4.3Nginx备配置修改

    命令1:

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

    配置信息如下:

    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
    	upstream testproxy {
          server 192.168.8.68:8083;
          server 192.168.8.64:8084 backup;
        }
    	
    	server {
            listen       80;
            server_name  localhost;
    
        
    
            location / {
                proxy_pass   http://testproxy;
                index  index.html index.htm;
            }
    	     ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
    	      proxy_connect_timeout 1s;
    		 ###nginx发送给上游服务器(真实访问的服务器)超时时间
             proxy_send_timeout 1s;
    	      ### nginx接受上游服务器(真实访问的服务器)超时时间
             proxy_read_timeout 1s;
    
        }
    
    }
    

    5.项目部署

    搭建了简单的springboot2.0项目

    @RestController
    public class TestController {
    
        @Value("${server.port}")
        private String port;
    
        @RequestMapping("/")
        public String test(){
            return "SpringBoot2.0:" + port;
        }
    }
    

    pom文件信息

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.wms</groupId>
        <artifactId>springboot</artifactId>
        <version>1.0-SNAPSHOT</version>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
        </parent>
        <dependencies>
        <!-- SpringBoot web 核心组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    

    打jar包,启动:java -jar springboot-1.0-SNAPSHOT.jar

    6.测试:

    注意:记得所有服务器防火关掉
    命令:

    systemctl stop firewalld
    

    先两台安装keepalived服务器都启动,然后再停掉master的演示效果如下:
    在这里插入图片描述

    展开全文
  • Nginx作负载均衡器的优点许多,简单概括为:①实现了可弹性化的架构,在压力增大的时候可以临时添加tomcat服务器添加到这个架构里面去;②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常...

    Nginx作负载均衡器的优点许多,简单概括为:①实现了可弹性化的架构,在压力增大的时候可以临时添加tomcat服务器添加到这个架构里面去;②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器;而Keepalvied可保证单个nginx负载均衡器的有效性,避免单点故障,整个拓补如下:

    nginx(主负载均衡器):192.168.1.106
    nginx(从负载均衡器):192.168.1.107
    VIP地址:                      192.168.1.108
    tomcat1的IP              192.168.1.102
    tomcat2的IP                192.168.1.103
    tomcat3的IP                192.168.1.105

    布置整个环境用到的软件为:
    apache-tomcat-6.0.20.tar.gz
    jdk-6u16-linux-i586.bin
    nginx-0.7.17.tar.gz
    prce-7.7.tar.gz

    ①首先分别在3台tomcat主机上布置java环境,安装tomcat,具体步骤为:
    apache-tomcat-6.0.tar.gz可在apache.org上下载,jdk-6u16-linux-i586.bin我是用文件挖掘者直接搜索下载的
    http://www.fdigg.net/search_jdk-6-linux-i586.htm
    第一步,安装java环境。
    JDK的安装
    #chmod +x jdk-6u16-linux-i586.bin
    #./jdk-6u16-linux-i586.bin
    到此JDK已经安装完成
    建立符号链接
    # ln -s /usr/local/jdk-1.6.0-16/bin/java /usr/bin/java
    # ln -s /usr/local/jdk-1.6.0-16/bin/javac /usr/bin/javac
    ln -s /usr/local/jdk-1.6.0-16 /usr/local/jdk
    ln -s /usr/local/jdk-1.6.0-16/jre /usr/local/jre
    TOMCAT的安装
    #tar zxvf apache-tomcat-6.0.20.tar.gz
    #mv apache-tomcat-6.0.20 /usr/local/tomcat

    设置环境变量: vim /etc/rc.d/rc.local,以追加的形式添加如下内容
    JAVA_HOME=/usr/local/jdk
    export JAVA_HOME
    JRE_HOME=/usr/local/jre
    export JRE_HOME
    CLASSPATH=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
    export CLASSPATH
    PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin
    export PATH
    TOMCAT_HOME=/usr/local/tomcat
    export TOMCAT_HOME
    重启服务器,启动tomcat以检查是否存在错误:
    #cd /usr/local/tomcat/bin
    #./startup.sh
    http://IP地址:8080 可以看到猫头:)成功了。

    ②分别在二台nginx负载均衡器上安装nginx及配置
    下载及安装nginx:
    wget
    ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
    tar zxvf pcre-7.7.tar.gz
    cd pcre-7.7/
    ./configure
    make && make install
    wget
    http://sysoev.ru/nginx/nginx-0.7.17.tar.gz
    tar zxvf nginx-0.7.17.tar.gz
    cd nginx-0.7.17/
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
    make && make install

    这里贴上nginx.conf配置文件,不加任何说明,方便用X-shell直接粘贴,很人性化的噢:)二个nginx负载均衡器的文件一样,配置完成后分别用/usr/local/nginx/sbin/nginx启动。
    user nobody nobody;
    worker_processes 1;
    pid /usr/local/nginx/logs/nginx.pid;
    worker_rlimit_nofile 51200;
    events
    {
    use epoll;
    worker_connections 51200;
    }
    http{
    include       mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;
    sendfile on;
    tcp_nopush     on;
    keepalive_timeout 60;
    tcp_nodelay on;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    upstream backend
    {
    server 192.168.1.102:8080;
    server 192.168.1.103:8080;
    server 192.168.1.105:8080;
    }
    server {
    listen 80;
    server_name
    www.yuhongchun027.com;
    location / {
    root /var/www ;
    index index.jsp index.htm index.html;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass
    http://backend;
    }

    #location /nginx {
    #access_log on;
    #auth_basic "NginxStatus";
    #auth_basic_user_file /usr/local/nginx/htpasswd;
    #}
    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" $http_x_forwarded_for';
    access_log /var/log/access.log access;
    }
    }

    ③在二台Nginx机上安装及配置keepalived,做双机互备。
    #wget
    http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
    #tar zxvf keepalived-1.1.15.tar.gz
    #cd keepalived-1.1.15
    #./configure
    #make
    #make install
    将keepalived做成启动脚务,方便管理:
    #cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
    #cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
    #mkdir /etc/keepalived
    #cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
    #cp /usr/local/sbin/keepalived /usr/sbin/
    #service keepalived start|stop

    在二台Nginx上,我分别贴出keepalived.conf配置文件,配置完成后分别用service keepalived start启动。检验keepalived是否成功可用命令ip a
    vrrp_instance VI_INET1 {
            state MASTER
            interface eth0
            virtual_router_id 53
            priority 200
            advert_int 1
            authentication {
                    auth_type pass
                    auth_pass yourpass
            }
            virtual_ipaddress {
                    192.168.1.108
            }
    }

    vrrp_instance VI_INET1 {
            state BACKUP
            interface eth0
            virtual_router_id 53
            priority 100
            advert_int 1
            authentication {
                    auth_type pass
                    auth_pass yourpass
            }
            virtual_ipaddress {
                    192.168.1.108
            }
    }

    以上三步完成后,就是检测了,大家可任意停掉其中一台的任何服务;在正常结果中大家应该发现,其中任意一台服务器宕机后,不影响整个系统的运作。如对以上实验过程有疑问,欢迎来信交流yuhongchun027@163.com(抚琴煮酒)

    展开全文
  • MYSQL数据库集群实战MYSQL 优化从以下几个方向:高可用、主从复制、读写分离、拆分库、拆分表来进行优化。MYSQL主从复制的目的是实现数据库冗余备份,将Master数据库数据定时同步至Slave库中,一旦Master 数据库宕机...
  • 测试Nginx自动重启配置nginx-tomcat服务集群 在通过 Nginx 构建 服务集群后, 为保证Nginx服务的高可用性, 配备第二台Nginx 作为后备, 通过keepalived虚拟路由实现双机主备,最终实现内网环境下高可用服务集群。 ...
  • #Tomcat集群 upstream mycluster{ server 192.168.182.112:8080 weight=1; server 192.168.182.113:8080 weight=1; } server{ listen 80; server_name 192.168.131.110; charset utf...
  •  为了提高tomcat集群的高可用性,还需要实现nginx的双机热备。 反向代理  以代理服务器来接受外网的连接请求,然后将请求转发给内网上的服务器,并将从服务器上得到的结果返回给外网请求的客户端。  nginx是一...
  • 重点两部分:一、负载均衡二、tomcat集群   所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它...为了tomcat集群的高可用性,还需要实现nginx的双机热备。 一,如果
  • 重点两部分:一、负载均衡二、tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台...为了tomcat集群的高可用性,还需要实现nginx的双机热备。 一,如果仅是对外提供一个页面访问,不...
  •       重点两部分:一、负载均衡二、tomcat集群 ... 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代...为了tomcat集群的高可用性,还需要实现nginx的双机热备...
  • 通过Terracotta实现Tomcat集群(2)

    千次阅读 2013-09-12 23:28:00
    上一篇利用Terracotta实现了最简单的Tomcat集群,只用到一台Terracotta服务器、一台nginx服务器,在实际应用中都可能是单点故障的点。nginx可以通过keepalived配置为热备;Terracotta内置了热备,可以在每台Tomcat...
  • keepalived :keepalived是一个类似于layer3, 4 &...keepalived + nginx 双机(多机)热备1. keepalived 配置2. 写个管理nginx的sh,通过keepalived来管理nginx 的切换3. nginx 做负载均衡tomcat 对应nginx的配...
  • 简单调优过程1

    千次阅读 2012-04-24 10:58:55
    统一认证优化过程 Edited By Bruce Bob 统一认证是整个系统的入口,所以,统一认证对于...因为我对统一认证的程序还比较有信心,我们首先直接采用了nginx+tomcat双机集群进行并发300的测试。测试结果惨不忍睹。 然
  • 一、使用nginx搭建三台tomcat集群 1. 安装nginx 1.1 安装基础环境; 安装c++环境: 进入目录 cd /opt/basic/gcc_g++/c++ 授权 chmod +x install.sh 执行 ./install 安装gcc环境 进入目录 cd
  • 做keepalived+nginx的双机热备份,vip:192.168.10.100 三.做keepalived+redis的哨兵模式,vip:192.168.10.200 四.在tomcat上做会话保持实验环境: Keepalived主+nginx101:192.168.10.1 Keepalived从+nginx102:192....
  • 集群,负载均衡,双机热备,服务监控········搭建全过程 服务器环境:Centos 5.6 (网站前端服务器) Suse linux 11 server (Mysql服务器) WEB1:eth0:202.106.0.2(外网) eth1:192.168.1.2...
  • Nginx于Keepalived可以实现高可用,实现双机热备+自动切换,这种操作在现在的集群系统中,比较的常见,还有,通过keepalived和redis实现热备份的,还有和mysql实现的,类似的案例挺多。 系统架构 keepalived虚拟...
  • Apache WEB集群

    2011-04-29 13:13:57
    轻松实现Apache,Tomcat集群和负载均衡nginx+tomcatNginx和tomcat无缝整合安装nginx+tomcat+jdk Nginx负载均衡器+Keepalvied双机互备+tomcat集群   正确优雅的解决用户退出问题——JSP和Struts解决方案使用监听...
  • 在一般的系统架构中,往往是采用一台Nginx做负载均衡,这台Nginx可能负责着转发多台Tomcat的请求。这就有一个问题,如果这台Nginx服务器挂了,那就等于整个系统都挂了。 所以就需要引入一种机制,将Nginx集群化,...
  • redis集群配置

    千次阅读 2017-06-07 16:18:48
    前些天一直在忙线上环境部署的事情,初步想的是,nginx(keepalive双机热备)+3(tomcat)+2redis(双机热备),但是后来由于阿里云服务器经典网络不提供虚拟IP,无法使用keepalive,nginx双机热备只能暂时先放弃,退...
  • Apache和Tomcat均衡负载

    2011-12-29 17:31:40
    最近公司的服务访问量不断提升,之前的一台应用服务压力比较大,在资源有限的情况下,做了个双机的负载集群。架构基本上是apache+tomcat+jk。   1.两台机器的server.xml配置文件(这里给出其中一台的部分配置)  ...
  • web集群之二 heartbeat实现ip漂移

    千次阅读 2015-09-16 14:58:26
    此文章是实现多台apache+tomcat集群功能的操作的部分之一 ------- 使用Heartbeat实现IP飘移(虚拟机vm中部署) 使用Heartbeat实现”双机热备”或者称为“双机互备” heartbeat的工作原理:heartbeat最核心的包括两个...
  • 项目简介本教程将从零开始部署一个前后端分离的开源项目,利用...部署图所用到的主流技术Docker容器、前后端集群、MySQL集群、Redis集群、Haproxy负载均衡、Nginx负载均衡、Keepalived实现双机热备前后端分离项...
  • 我也不知道能到啥,主要是还不知道能到啥,软件项目,预估是:Linux( rhel 7.4),然后,jsp + apache + tomcat + mysql,或者,还有python,双机热备,不知道要不要集群,一切都是未知,试装了一下rhel 7.4,好象...
  • nginx+keepalived做前端双机热备,后端tomcat做负载均衡。有前置nginx的proxy_pass将location做动静分离后的jsp等jsp程序文件分发到后端upstreamd模块中tomcat集群上,将静态html网页、图片、js、css等使用前端nginx...
  • keepalived 使用

    2015-06-29 10:17:42
    keepalived 一般用于实现双机热备,两台服务器提供服务,当其中一台...主机: 192.168.5.154 --- nginx负载均衡 --- tomcat 集群 备机: 192.168.5.158 --- nginx负载均衡 --- tomcat 集群 vip: 192.168.5.99 ...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

tomcat双机集群