• 【转】 在linux环境下部署tomcat应用+配置优化


    http://blog.csdn.net/gaoligaoli/archive/2007/06/10/1646877.aspx

    配置linux下的tomcat
    一、jdk的安装
    1.以root身份等陆
    2.打开一个终端
    3.输入命令ls -l查看安装的文件的权限
    #cd /home
    #cp jdk1.4.2.rpm.bin /usr/local
    #cd /usr/local
    给所有的用户添加可执行的权限
    #chmod a+x jdk1.4.2.rpm.bin
    #./jdk1.4.2.rpm.bin
    会生成文件jdk1.4.2.rpm
    同样给所有的用户添加可执行权
    chmod a+x jdk1.4.2.rpm
    安装程序 rpm -ivh jdk1.4.2.rpm
    接受协议,按enter即可
    使用默认的安装目录,在 /usr/java/下

    二、安装tomcat

    tar –xvzf jakarta-tomcat-5.5.9.tar.gz

    mv jakarta-tomcat-5.5.9 tomcat5.9

    完成后,会在/usr/tomcat出现tomcat5.9目录,里边就是tomcat的文件。

    三、配置环境变量
    vi .bash_profile

    加入如下内容:
    JAVA_HOME=/usr/java/jdk1.5.0_04

    export JAVA_HOME

    CATALINA_HOME=/yewu/tomcat/tomcat5.9

    export CATALINA_HOME

    CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/common/lib

    export CLASSPATH

    PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

    export PATH

    保存退出。
    四、配置启动tomcat
    1、手动启动,将这个文件放在根/bin下,名称为100class
    #!/bin/sh
    CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
    export CATALINA_HOME

    $CATALINA_HOME/bin/startup.sh
    #case "$1" in
    #start)
    # $CATALINA_HOME/bin/startup.sh
    # ;;
    #stop)
    # $CATALINA_HOME/bin/shutdown.sh
    # ;;
    #esac
    2、自动启动,将这个文件放在/etc/init.d下,名称为100classServer
    #!/bin/sh

    case "$1" in
    start)
     CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
     export CATALINA_HOME
     JAVA_HOME=/usr/java/jdk1.5.0_12
     export JAVA_HOME
     echo $JAVA_HOME
     PATH=$JAVA_HOME/bin:$PATH
     cd $CATALINA_HOME/bin
     $CATALINA_HOME/bin/startup.sh
     cd -
     ;;
    stop)
     CATALINA_HOME=/usr/tomcat/tomcat-5.0.28
     export CATALINA_HOME
     JAVA_HOME=/usr/java/jdk1.5.0_12
     export JAVA_HOME
     echo $JAVA_HOME
     PATH=$JAVA_HOME/bin:$PATH
     echo $PATH
     $CATALINA_HOME/bin/shutdown.sh
     ;;
    *)
     echo "Usage: 100classServer {start|stop}"
     exit 1
    esac

    exit 0
    说明:要在etc/rc2.d等目录,从rc1~6下加入S99100class的链接,系统在启动时,自动加载tomcat服务

    3、拷贝%JAVA_HOME%/lib/tools.jar拷贝到%CATALINA_HOME%/common/lib下,可选择
    4、在tomcat-users.xml下增加用户名称100class密码100class,加入相应的角色

    可通过如下方法解决:
    在tomcat安装目录的conf文件夹里找到tomcat-users.xml
    内容修改为以下:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="tomcat" password="tomcat" roles="tomcat"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
      <user username="role1" password="tomcat" roles="role1"/>
      <user username="admin" password="admin" roles="admin,manager"/>
    </tomcat-users>
    5、修改tomcat的默认路径
          <Host name="localhost" debug="0" appBase="webapps"
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
    下面加入:
    <Context path="" docBase="baiying" debug="0" reloadable="true" />
    5、调用htt://localhost:8080/manager,部署war文件
    6、系统自动启动Tomcat服务
    在Linux下,Tomcat可以作为一个守护进程来启动以及停止,这个必须借助于项目commons-daemon中的jsvc工具。Tomcat安装完后就带有这个工具的源码{tomcat}/bin/jsvc.tar.gz。按照下列命令安装这个工具:
    解压: tar zxvf jsvc.tar.gz
    配置: cd jsvc-src
            chmod +x configure
           ./configure --with-java=/usr/jdk
    编译: make
    检验: ./jsvc -help
    jsvc工具本身带了一个脚本(在native目录下)用来启动和停止Tomcat守护进程,但是在试验中发现该脚本无法设置为自动启动,显示的错误信息是:tomcat 服务不支持 chkconfig,因此修改了此脚本
    程序代码:  
    #!/bin/sh
    #
    # Startup Script for Tomcat5
    #
    # chkconfig: 345 87 13
    # description: Tomcat Daemon
    # processname: jsvc
    # pidfile: /var/run/jsvc.pid
    # config:
    #
    # Source function library.
    . /etc/rc.d/init.d/functions
    #
    prog=tomcat
    #
    # Small shell script to show how to start/stop Tomcat using jsvc
    # If you want to have Tomcat running on port 80 please modify the server.xml
    # file:
    #
    # <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
    # <Connector className="org.apache.catalina.connector.http.HttpConnector"
    # port="80" minProcessors="5" maxProcessors="75"
    # enableLookups="true" redirectPort="8443"
    # acceptCount="10" debug="0" connectionTimeout="60000"/>
    #
    # You need a developement version of Tomcat (Apache Tomcat/4.1-dev)
    #
    # Adapt the following lines to your configuration
    JAVA_HOME=/usr/jdk1.5.0
    CATALINA_HOME=/apache/tomcat
    DAEMON_HOME=$CATALINA_HOME/bin/jsvc-src
    TOMCAT_USER=root
    TMP_DIR=/var/tmp
    CATALINA_OPTS=
    CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar
    start(){
    echo -n $"Starting $prog: "
        #
        # Start Tomcat
        #
        $DAEMON_HOME/jsvc \
        -user $TOMCAT_USER \
        -home $JAVA_HOME \
        -Dcatalina.home=$CATALINA_HOME \
        -Djava.io.tmpdir=$TMP_DIR \
        -outfile $CATALINA_HOME/logs/catalina.out \
        -errfile '&1' \
        $CATALINA_OPTS \
        -cp $CLASSPATH \
        org.apache.catalina.startup.Bootstrap
        #
        # To get a verbose JVM
        #-verbose \
        # To get a debug of jsvc.
        #-debug \
        RETVAL=$?
        [ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc
        [ $RETVAL = 0 ] && echo_success || echo_failure
        echo
        return $RETVAL
    }
    stop(){
        echo -n $"Stopping $prog: "
        #
        # Stop Tomcat
        #
        PID=`cat /var/run/jsvc.pid`
        kill $PID
        RETVAL=$?
        [ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc
        [ $RETVAL = 0 ] && echo_success || echo_failure
        echo
        return $RETVAL
    }
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart|reload)
    stop
    start
    ;;
    *)
    echo "Usage $0 start/stop"
    exit 1;;
    esac

    修改下载的脚本里面有关路径的信息以及要启动Tomcat的用户(用户必须已存在)
    拷贝脚本到/etc/rc.d/init.d目录下的tomcat文件,给该脚本赋予可执行权限
    chmod +x tomcat
    你可以使用命令
    /etc/rc.d/init.d/tomcat start|stop
    来验证守护进程是否可以正常启动和停止。
    接下来就是把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:
    chkconfig --add tomcat
    重新启动系统后可以启动的过程中看到Starting Tomcat ..... [OK]的信息,这样就完成设置过程。


    附:vi编辑器的操作

    打开文件:vi 文件名

    从命令模式切换到输入模式:a

    输入模式切换到命令模式:ESC

    末行模式::

    保存::w

    保存退出::wq

    不保存强制退出::q!

    保存强制退出::wq!

    光标移动到文件首:[[

    光标移动到文件尾:]]

    下翻页:ctrl+f

    上翻页:ctrl+b


    优化:Tomcat 5常用优化和配置

    ========================================================================
    1、JDK内存优化:
    Tomcat默认能够使用的内存为128MB,Windows下,在文档{tomcat_home}/bin/catalina.bat,Unix下,在文档{tomcat_home}/bin/catalina.sh的前面,增加如下配置:
    JAVA_OPTS='-Xms[初始化内存大小] -Xmx[能够使用的最大内存]
    一般说来,您应该使用物理内存的 80% 作为堆大小。
    2、连接器优化:
    tomcat配置文档server.xml中的配置中,和连接数相关的参数有:
    maxThreads:
    Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。
    acceptCount:
    指定当任何能够使用的处理请求的线程数都被使用时,能够放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
    minSpareThreads:
    Tomcat初始化时创建的线程数。默认值4。
    maxSpareThreads:
    一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。
    enableLookups:
    是否反查域名,默认值为true。为了提高处理能力,应配置为false
    connnectionTimeout:
    网络连接超时,默认值60000,单位:毫秒。配置为0表示永不超时,这样配置有隐患的。通常可配置为30000毫秒。
    maxKeepAliveRequests:
    保持请求数量,默认值100。
    bufferSize:
    输入流缓冲大小,默认值2048 bytes。
    compression:
    压缩传输,取值on/off/force,默认值off。
    其中和最大连接数相关的参数为maxThreads和acceptCount。假如要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数配置,通常Windows是2000个左右,Linux是1000个左右。
    3、tomcat中如何禁止和允许列目录下的文档
    在{tomcat_home}/conf/web.xml中,把listings参数配置成false即可,如下:
    <servlet>
    ...
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    ...
    </servlet>
    4、tomcat中如何禁止和允许主机或IP地址访问
    <Host name="localhost" ...>
      ...
      <Valve className="org.apache.catalina.valves.RemoteHostValve"
             allow="*.mycompany.com,www.yourcompany.com"/>
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
             deny="192.168.1.*"/>
      ...
    </Host>
    这是我们服务器的配置,具体文档不能给您,因为涉及到公司机密,所以那一行我给您,我拷贝下来了
    JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'
  • 相关阅读:
    Lucene
    SQL优化以及索引
    Mysql优化
    RocketMQ
    RocketMQ
    Session共享
    Linux安装Nginx
    初识nginx
    跨域,防止表单重复提交
    HttpClient案例
  • 原文地址:https://www.cnblogs.com/pony/p/1545442.html
Copyright © 2020-2023  润新知