设为首页 收藏本站
查看: 856|回复: 0

[经验分享] Nginx+Keeplived+Tomcat搭建高可用/负载均衡的web服务器集群

[复制链接]

尚未签到

发表于 2018-12-1 07:56:34 | 显示全部楼层 |阅读模式
  一、集群规划
服务器角色主机名IP地址/VIP软件
Nginx MasterNK120.0.20.101/20.0.20.100Nginx/Keepalived
Nginx BackupNK220.0.20.102/20.0.20.100Nginx/Keepalived
Web ServerNK320.0.20.103Tomcat
Web ServerNK420.0.20.104Tomcat
  #关闭selinux和firewall
  #软件版本为:apache-tomcat-7.0.85.tar.gz  jdk-8u151-linux-x64.tar.gz
  二、安装配置Tomcat

  1.安装JDK并配置环境变量
  2.部署Tomcat
[root@NK03 ~]# tar zxf apache-tomcat-7.0.85.tar.gz
[root@NK03 ~]# mv apache-tomcat-7.0.85 /usr/local/tomcat  3.配置server.xml
[root@NK03 ~]# cat /usr/local/tomcat/conf/server.xml


  
  
  
  
  
  
  
   
  
  
   
   
        #NK4为tomcat2
        
         
         
            
            
            
              
            
            
            
            
         
         
         
         
        
      
        
      
      
        
      
   
  
  4.在web.xml里增加
[root@NK03 ~]# vim /usr/local/tomcat/conf/web.xml


   
......
......
   
        index.html
        index.htm
        index.jsp
   
  5.建立测试页面

[root@NK03 ~]# mkdir /usr/local/tomcat/webapps/test
[root@NK03 ~]# cat /usr/local/tomcat/webapps/test/index.jsp
  
  
  
        Session serviced by tomcat  
         
                  
                        Session ID  
                        -----NK3  
                          
                  
                  
                        Created on  
                          
                  
         
  
  6.复制web.xml到测试文件夹
[root@NK03 ~]# mkdir /usr/local/tomcat/webapps/test/WEB-INF
[root@NK03 ~]# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/  7.启动tomcat
[root@NK03 ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.  #以上操作在NK4上同步执行,除了配置文件server.xml稍有区别,其他都一样

  8.浏览测试页面


  三、配置Nginx
  1.获取Nginx yum源并安装

[root@NK01 ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
[root@NK01 ~]# yum install -y nginx  2.修改配置文件(NK1和NK2相同配置)

[root@NK01 ~]# cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;
    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;
    keepalive_timeout  65;
    server_tokens   off;
    gzip  on;
    client_body_buffer_size 512k;
    proxy_connect_timeout   5;
    proxy_send_timeout      60;
    proxy_read_timeout      5;
    proxy_buffer_size       16k;
    proxy_buffers           4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    upstream test{
        server 20.0.20.103:8080 weight=10;
        server 20.0.20.104:8080 weight=10;
}
    server {
        listen   80;
        server_name  20.0.20.101;
        charset utf-8;
        location / {
                proxy_passhttp://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
        }
}
    include /etc/nginx/conf.d/*.conf;
}  3.启动nginx
[root@NK01 ~]# systemctl start nginx
[root@NK01 ~]# systemctl enable nginx  4.测试


  四、配置keepalived
  1.安装keepalived

[root@NK01 ~]# yum -y install keepalived  2.编辑nginx检测脚本
[root@NK01 ~]# cat /usr/local/keepalived/chknginx.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    systemctl restart nginx
    sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
    systemctl stop keepalived
    fi
fi[root@NK01 ~]# chmod +x /usr/local/keepalived/chknginx.sh  3.修改配置文件
[root@NK01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
    notification_email {
    }
    smtp_connect_timeout 30
    router_id LVS_DEVEL
}
vrrp_script check_nginx {
    script "/usr/local/keepalived/chknginx.sh"    #nginx检测脚本
    interval 3
    weight -2
}
vrrp_instance VI_1 {
    state MASTER    #NK2为BACKUP
    interface ens192
    virtual_router_id 151
    priority 100    #NK2为99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    track_script {
        check_nginx    #检测脚本名
    }
    virtual_ipaddress {
        20.0.20.100
    }
}  4.在网卡上添加一个IP地址


  #NK2和NK1配置类似
  5.启动keepalived

[root@NK01 ~]# systemctl start keepalived
[root@NK01 ~]# systemctl enable keepalived  6.查看IP是否绑定

[root@NK01 ~]# ip add |grep "inet 20"
    inet 20.0.20.101/16 brd 20.0.255.255 scope global ens192
    inet 20.0.20.100/32 scope global ens192
    inet 20.0.20.100/16 brd 20.0.255.255 scope global secondary ens192
[root@NK02 ~]# ip add |grep "inet 20"
    inet 20.0.20.102/16 brd 20.0.255.255 scope global ens192
    inet 20.0.20.100/16 brd 20.0.255.255 scope global secondary ens192  7.使用虚拟IP浏览测试页面


  四、故障测试
  1.keepalived测试

  终止掉master后切换到了backup

  2.nginx测试
  在NK1上终止nginx后,会通过脚本自动启动nginx




  3.tomcat测试

  终止NK3上的tomcat






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641754-1-1.html 上篇帖子: win7下tomcat 7.0.42 免安装版配置 下篇帖子: 沫沫金
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表