xuesn 发表于 2018-12-5 06:38:28

tomcat的配置及负载均衡

  

  一.Tomcat简介
  
  1.tomcat
     tomcat是由Apache组织开发的应用(java)服务器,是一个servlet(jsp翻译成servlet)容器。其可认为是Apache的扩展,但可以独立于Apache运行。
  

  2.tomcat中关键的目录
      /bin:包含了启动、停止和其他的脚本。在UNIX系统中,使用*.sh脚本;
      /conf:配置文件和一些文档定义规则。最重要的文件就是server.xml,它是tomcat容器的主要配置文件。
      /logs:这是默认的日志目录,其中控制台打印出的内容,都会保存在catalina.log中
     /webapps:web应用程序,其中ROOT中存放tomcat的首页,当输入URL:loalhost:8080时,会默认访问该目录下的index.html
     
  二.Tomcat的配置

  

系统环境:rhel6 x32 selinux and iptables disabled
主机角色:主机1 172.25.46.1       tomcat nginx
                            主机2 172.25.46.2      负载均衡器
                            主机3 172.25.46.3      负载均衡器
软件下载:http://www.nginx.org
      http://tomcat.apache.org
       http://www.oracle.com/technetwork/java/javase/archive-139210.html




        jdk安装

  # ls
           jdk-6u32-linux-x64.bin
        # sh jdk-6u20-linux-i586.bin
  
        运行后,生成目录jdk1.6.0_20
        # mvjdk1.6.0_20/usr/local/lnmp
        # ln-sjdk1.6.0_20/java
  配置环境变量
     # vim /etc/profile
        export JAVA_HOME=/usr/local/lnmp/java
        exportJAVAPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
        export PATH=$PATH:$JAVA_HOME/bin
     # source /etc/profile

  

     测试jdk是否安装成功
      # vim test.java
     public class test{
     public static void main(String args[])
     {System.out.println("hello world");
     }}
     # javac test.java
     #javatest
         hello world
      tomcat安装
      # ls
      apache-tomcat-7.0.37.tar.gz
      #    cd /usr/local/lnmp/
      #    tar zxf/root/apache-tomcat-7.0.37.tar.gz
      #    ln -s apache-tomcat-7.0.37 tomcat
      #    cd tomcat
  
     启动tomcat
     #    bin/startup.sh
     #    netstat -antlp
              tcp       0      0 :::8080                     :::*                        LISTEN      5650/java
        
        此时可用浏览器测试:172.25.46.1:8080可看到tomcat界面,如图:
        
        
        jsp,调用系统时间
      #cd webapps/ROOT
     #vim test.jsp
           the time is
     
        再次用浏览器访问:172.25.46.1:8080/test.jsp,如图:

        
         注意:以上访问均需要添加8080端口,若想访问不添加端口,可在nginx.conf文件中设置
        
         编辑nignx.conf文件,设置所有jsp页面由tomcat处理,访问不添加8080端口
        # vim /usr/local/lnmp/nginx/conf/nginx.conf
           101            location ~ \.jsp${                  
    102            proxy_passhttp://172.25.46.1:8080;   
           103            }
  

        # nginx -t
        # nginx -s reload
  

         此时再次访问可不添加端口:172.25.46.1/test.jsp,如图:

  

  三.tomcat负载均衡
  

     主机1:172.25.46.1
     复制java及tomcat至负载均衡器
  # cd /usr/local/lnmp/
        # scp -r java/tomcat/172.25.46.2:/usr/local/lnmp
        # scp -r java/tomcat/172.25.46.3:/usr/local/lnmp
        
        编辑文件nginx.conf,实现负载均衡
        #vim /usr/local/lnmp/nginx/conf/nginx.conf
           
        17 http {
         ......
         23
         24      upstream tomcat{
         25      
         26      server172.25.46.2:8080;                  ##负载均衡
         27      server172.25.46.3:8080;
         28      }
         29
        .......
         110
         111      location ~ \.jsp$ {                           ##所有jsp页面交给Tomcat处理
         112      proxy_pass http://tomcat;
         113      }
  }
  

  # nginx -t
           # nginx -s reload
  

  
        主机2:172.25.46.2
        主机3:172.25.46.3
  

  配置环境变量
           # /etc/init.d/httpd start
           # vim /etc/profile
               export JAVA_HOME=/usr/local/lnmp/java
               export JAVAPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
               export PATH=$PATH:$JAVA_HOME/bin
           # source /etc/profile
     
           启动tomcat
        # cd /usr/local/lnmp/tomcat
        # bin/startup.sh
  

           测试程序
           # cd webapps/ROOT/
           #vim test.jsp
              the time is
     
           此时可用浏览器访问:172.25.46.2/test.jsp,如图:

           访问172.25.46.3/test.jsp,如图:

           访问172.25.46.1/test.jsp,如图:

  

  

     问题集锦:
        (1)此实验中,我使用的平台是linux32位操作系统,因此安装jdk时选择适合的jdk脚本。第一次由于下载了64位的jdk脚本,显示无法读取库文件。后来下载32位jdk脚本,才能够运行成功。因此实验时一定要注意实验环境。
        (2)实验中在编辑nignx.conf文件时,upstream应该位于http{}中并且在server{}之外,我在实验时由于将upstream写在了server{}中,使用nginx -t检测语法时报错。后来根据错误提示进行更改,能够正确加载此文件。

        (3)在此实验中,负载均衡使用的是轮询的机制,由于负载均衡器只有2台,效果不是很明显,当负载均衡器较多时效果会更好。




页: [1]
查看完整版本: tomcat的配置及负载均衡