一.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      负载均衡器

  软件下载:g

        

       

      jdk安装

  # ls

         jdk-6u32-linux-x64.bin

      # sh jdk-6u20-linux-i586.bin

  

      运行后,生成目录jdk1.6.0_20

      # mv  jdk1.6.0_20  /usr/local/lnmp

      # ln  -s  jdk1.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

     #  java  test

       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 <%=new java.util.Date()%>

    

      再次用浏览器访问: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

       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 <%=new java.util.Date()%>

     

         此时可用浏览器访问: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台,效果不是很明显,当负载均衡器较多时效果会更好。