在centos7上实现nginx+tomcat负载均衡

  • 概述
  • 通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善web站点架构。

    nginx是一款优秀的http服务器软件,它能够支持多达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存,CPU等系统资源消耗非常低。目前有很多大型网站都应用nginx作为后端网站程序的反向代理及负载均衡。

    本案例我们将已nginx作为负载均衡器,反向代理,tomcat作为节点服务器。

    • 案例环境
    主机 IP地址
    nginx服务器 192.168.177.132
    tomcat服务器1 192.168.177.145
    tomcat服务器2 192.168.177.135

    tomcat服务器

    安装jdk(1.8版本)
    # tar xf apache-tomcat-8.5.23.tar.gz /opt
    # tar xf jdk-8u144-linux-x64.tar.gz /opt
    //解压安装包
    # mv apache-tomcat-8.5.23/ /usr/local/tomcat8
    # mv jdk1.8.0_144/ /usr/local/java
    //便于管理
    # vim /etc/profile   //设置环境变量
    
    export JAVA_HOME=/usr/local/java
    export JRE_HOME=/usr/local/java/jre
    export PATH=$PATH:/usr/local/java/bin
    export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
    
    # source /etc/profile
    # java -version   //查看java版本信息
       java version "1.8.0_131"
       OpenJDK Runtime Environment (build 1.8.0_131-b12)
       OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

    安装tomcat
    # ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
    # ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
    //放在/usr/bin下便于识别命令
    # tomcatup     //开启服务
    # netstat -anpt | grep 8080   //查看tomcat端口是否开启
    # http://192.168.177.145:8080/         //测试默认测试页是否正常显示(节点)
    # vim /usr/local/tomcat8/webapps/ROOT/index.jsp //修改默认网页内容(站点)
        <h1>this is 145!!!</h1>







    ==注==:两台tomcat服务器配置完全一样

    nginx服务器

    手工编译安装
    # tar zxvf nginx-1.12.0.tar.gz -C /opt
    # yum install pcre-devel zlib-devel gcc gcc-c++ -y    //安装环境包
    # useradd -M -s /sbin/nologin nginx  //创建管理nginx的用户
    # cd /opt/nginx-1.12.0/
        ./configure     --prefix=/usr/local/nginx     --user=nginx \   //指定运行的用户
        --group=nginx \   //指定运行的组
        --with-http_stub_status_module   //启用统计状态
    # make && make install
    # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    //让系统识别命令
    # nginx -t   //验证语法
    编写便于service管理的脚本
    # cd /etc/init.d/
      vim nginx
    
    #!/bin/bash
    # chkconfig: - 99 20
    # description: Nginx Service Control Script
    PROG="/usr/local/nginx/sbin/nginx"
    PIDF="/usr/local/nginx/logs/nginx.pid"
    case "$1" in
      start)
        $PROG
        ;;
      stop)
        kill -s QUIT $(cat $PIDF)
        ;;
      restart)
        $0 stop
        $0 start
        ;;
      reload)
        kill -s HUP $(cat $PIDF)
        ;;
      *)
            echo "Usage: $0 {start|stop|restart|reload}"
            exit 1
    esac
    exit 0
    # chmod +x /etc/init.d/nginx   //执行权限
    # chkconfig --add nginx
    # chkconfig --level 35 nginx on
    # service nginx stop
    # netstat -ntap | grep 80
    # service nginx start
    # netstat -ntap | grep 80
    修改配置文件
    # vim /usr/local/nginx/conf/nginx.conf
    
      #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
         添加:
        upstream tomcat_server {                             #添加
                  server 192.168.177.145:8080 weight=1;   //权重相同,页面会反复在以下两个页面间来回切换
                  server 192.168.177.135:8080 weight=1;
                }
    
        server {
            listen       80;
    .....省略
    location / {
                # root   html;
                # index  index.html index.htm;
                proxy_pass http://tomcat_server;  //添加一行 ,把nginx的默认站点通过 proxy_pass方法代理到设定好的tomcat_server负载均衡服务器上
            }
    # service nginx  restart   //启用nginx服务//



    原文地址:http://blog.51cto.com/13620936/2158410

    时间: 2024-10-12 05:08:46

    在centos7上实现nginx+tomcat负载均衡的相关文章

    Centos7搭建nginx+tomcat负载均衡

    Nginx简介 Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较 Tomcat服务器面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器.Apache服务器稳定.开源.跨平台,但是Apache服务器不支持高并发,Nginx能支持处

    Nginx+Tomcat负载均衡集群

    第3章:部署Tomcat及其负载均衡(案例) 防伪码:成功之前必须与孤独为伍! Tomcat应用场景:  Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的的场合下被普遍应用,是开始和调试JSP程序的首选.但是由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端.如图所示 一.部署tomcat 1.安装JDK,配置Java环境 1)安装jdk,建立

    linux+nginx+tomcat负载均衡,实现session同步

    linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞定,现把我的过程贴上来,以备用.软件及环境是:虚拟机上装centos 5.5IP为:192.168.0.51 装上nginx和tomcat  6.0.32 命名为 Tomcat1一台win7上装tomcat  6.0.32  IP为:192.168.0.50  命名为 Tomcat2 首先装ngin

    Nginx + Tomcat 负载均衡群集 【内附源码包】

    前言: 1·在之前都学习 Linux 的一些服务和搭建,都很熟悉 !这篇文章主要讲Nginx.Tomcat与 Nginx + Tomcat 负载均衡群集.2·在各种网站服务器软件中,除了 Apache HTTP Server 外,还有一款轻量级的 HTTP 服务器软件--Nginx,它是由俄罗斯 Lgor Sysoev(伊戈尔·赛索耶夫)开发. Nginx 的优点: 1·稳定性2·系统资源消耗低3·高并发链接的处理能力 (30000~50000 个并发请求),核心优点!4·反向代理服务器5·安装

    Nginx+Tomcat负载均衡群集搭建

    Tomcat简介 Tomcat最初是由Sun的软件构架师詹姆斯邓肯.戴维森开发 安装完Tomcat后安装路径下面的目录和文件,是使用或者配置Tomcat的重要文件 Tomcat重要目录 bin:存放启动和关闭Tomcat脚本 conf:存放Tomcat不同的配置文件 doc:存放Tomcat文档 lib/japser/common:存放Tomcat运行需要的库文件 logs:存放Tomcat执行时的LOG文件 src:存放Tomcat的源代码 webapps:Tomcat的主要Web发布目录 w

    Nginx+Tomcat负载均衡群集(实战可跟做!)

    Nginx+Tomcat负载均衡群集 nginx处理静态 tomcat处理动态 合并为动静分离(前后端分离) Tomcat重要目录 bin:存放启动和关闭Tomcat脚本conf:存放Tomcat不同的配置文件doc:存放Tomcat文档lib/japser/common:存放Tomcat运行需要的库文件logs:存放Tomcat执行时的LOG文件src:存放Tomcat的源代码webapps:Tomcat的主要Web发布目录 Demo前置知识点: Nginx静态处理优势 1.Nginx处理静态

    搭建Nginx+Tomcat 负载均衡集群

    实验拓扑: 实验要求: 客户访问192.168.10.10,第一次或者第一个请求将请求交给10.101,第二次或者第二个请求交给10.102.实现两台服务器负载,多台的搭建方法相同. 试验环境: 主机 操作系统 所需软件 Nginx服务器 rhel 6.5 x86_64 nginx-1.6.0.tar.gz Tomcat服务器1 CentOS 6.5   x86_64 apache-tomcat-7.0.54.tar.gz  jdk-7u65-linux-x64.gz Tomcat服务器2 Ce

    使用nginx+tomcat负载均衡

    标注:该文章属于蚂蚁课堂原创内容,其他网站转载必须标注来源与蚂蚁课堂.www.itmayiedu.com 1.1 什么是负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 1.2 需求 nginx作为负载

    nginx+tomcat负载均衡策略

    測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用nginx做负载均衡,三台tomcat做WEB详细业务处理. nginx配置nginx.conf: #Nginx所用用户和组.window下不指定 #user niumd niumd; #user nobody; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processe