linux下简洁优化部署tomcat应用
2016-08-17 17:29
531 查看
本文来自我的githubpages博客http://galengao.github.io/即www.gaohuirong.cn
摘要:
本文是自己根据公司架构部署tomcat方法整理出来的文本
修改LIMITS.CONF
修改SYSCTL.CONF
安装apr,方便tomcat开启aoi
apr下载地址
拷贝并修改脚本启动参数
到目录/data/zhnx/sbin下新建三个脚本,这里与center项目为例:startcenter.sh、stopcenter.sh和super.sh
[/code]
[/code]
到目录/etc/rc.d/init.d/下新建一个脚本,这里与center项目为例:center
删除原始的并替换修改过的SERVER.XML
若有自己需要增加的jar就拷进去
$cd/data/zhnx/server/lib把jar考进去
日志名称与服务名一样
$mkdir-p/data/zhnx/center_webapps
$mkdir-p/data/zhnx/logs/center
center.war部署至center_webapps
部署时需将对应webapps目录下的文件及文件夹清空;
然后把项目war包拷入对应webapps目录下
启动服务
摘要:
本文是自己根据公司架构部署tomcat方法整理出来的文本
修改系统内核
修改linux的一些系统参数,以优化系统性能修改LIMITS.CONF
$vi/etc/security/limits.conf #增加 *softnofile65536 *hardnofile65536
修改SYSCTL.CONF
#备份
$mv/etc/sysctl.conf/etc/sysctl.conf.bak
$vi/etc/sysctl.conf
#插入
net.ipv4.ip_forward=0
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=0
kernel.sysrq=0
kernel.core_uses_pid=1
net.ipv4.tcp_syncookies=1
kernel.msgmnb=65536
kernel.msgmax=65536
kernel.shmmax=68719476736
kernel.shmall=4294967296
net.ipv4.tcp_max_tw_buckets=6000
net.ipv4.tcp_sack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_rmem=4096873804194304
net.ipv4.tcp_wmem=4096163844194304
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.netdev_max_backlog=262144
net.core.somaxconn=262144
net.ipv4.tcp_max_orphans=3276800
net.ipv4.tcp_max_syn_backlog=262144
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_mem=94500000915000000927000000
net.ipv4.tcp_fin_timeout=1
net.ipv4.tcp_keepalive_time=30
net.ipv4.ip_local_port_range=102465000
安装APR
下载apr-1.5.2.tar.gz和apr-util-1.5.4.tar.gz安装apr,方便tomcat开启aoi
$tar-zxvfapr-1.5.2.tar.gz
$tar-zxvfapr-util-1.5.4.tar.gz
$yuminstallgccgcc-c++autoconflibtool
#apr安装
$cdapr-1.5.2
$./configure--prefix=/usr/local/apr
#--prefix=/usr/local/apr指apr的安装路径,以下要用到
$make
$makeinstall
#apr-util安装
$cdapr-util-1.5.4
$./configure--with-apr=/usr/local/apr
#--with-apr=/usr/local/apr指定APR安装路径
$make
$makeinstall
安装JDK1.7
下载jdk-7u76-linux-x64.tar.gz拷贝到/usr/local下面cd/usr/local
$tar-zxvfjdk-7u76-linux-x64.tar.gz
#mv重命名为jdk1.7.0_76
mvjdk1.7.0_76jdk1.7
#在环境变量/etc/profile里配置JAVA_HOME
JAVA_HOME=/usr/local/jdk1.7
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOMEPATHCLASSPATH
#环境变量立即生效
$source.bash_profile
编译安装tomcat
创建DATA目录
$mkdir/data
复制TOMCAT到目标目录并解压
$cpapache-tomcat-7.0.64.tar.gz/data
$tar-zxvfapache-tomcat-7.0.64.tar.gz
#mv重命名为你所需的项目名称,如zhnx
$mvapache-tomcat-7.0.64zhnx
进入TOMCAT精简目录
请参照下面步骤一步一步顺序操作$cdzhnx
#把项目除了binlibconf目录的其它全部删除
$rm-rfLICENSElogsNOTICERELEASE-NOTESRUNNING.txttemp/webapps/work/
#在同目录新建三个文件夹domain、server、sbin
$mkdirdomain
$mkdirserver
$mkdirsbin
#把bin和lib目录移动到server下面
$mvbin/server/
$mvlib/server/
#把conf目录移动到domain下面
$mvconf/domain/
#安装tomcatnative开启aio
#进入server/bin目录下安装tomcatnative与apr连起来开启tomcataio模式
$cdserver/bin
#解压tomcatnative
$tar-zxvftomcat-native.tar.gz
#进入安装tomcatnative目录
$cdtomcat-native-1.1.33-src
$cdjni
$cdnative
#执行命令
$./configure--with-apr=/usr/local/apr--with-java-home=/usr/local/jdk1.7.0_76
$make
$makeinstall
#创建项目目录(这里项目名称示例CENTER)
$cd/data/zhnx/domain
$mkdircenter
#把conf目录移动到项目下
$mvconf/center/
拷贝并修改脚本启动参数
到目录/data/zhnx/sbin下新建三个脚本,这里与center项目为例:startcenter.sh、stopcenter.sh和super.sh
$cd/data/zhnx/sbin
#脚本一
$vistartcenter.sh
#!/bin/bash
#下面需要修改的地方
#1、HOME=/data/zhnx根据自己建的目录
exportHOME=/data/zhnx
exportDOMAIN_HOME=${HOME}/domain
exportLOG_HOME=${HOME}/logs
exportTOMCAT_HOME=${HOME}/server
#Variablesettingsbegin
#下面需要修改的地方
#1、exportprojectName=center服务名称,即war包名称
#2、exporthttpPort=7001启动接收请求端口端口
#3、exportserverPort=8001tomcat启动的本地端口
exportprojectName=center
exporthttpPort=7001
exportserverPort=8001
exportminMsMem=3200m
exportmaxMsMem=3200m
exportssMem=300k
exportmnMem=1100m
exportsurvivorRatior=2
exportminPermSize=250m
exportmaxPermSize=300m
exportthreshold=20
exportfraction=60
exportpageSize=128m
exportwarFile=${HOME}/center_webapps#服务名加webappswar包地址
exportlogFile=${LOG_HOME}/${projectName}/catalina.$(date+'%Y-%m-%d').out
exportpidFile=${LOG_HOME}/${projectName}.pid
exportLD_LIBRARY_PATH=/usr/local/apr/lib
exportheapDumpPath=${DOMAIN_HOME}/${projectName}/heapDump
#Variablesettingsend
#JVMargssettingsbegin
#下面需要修改的地方:
#1、Dtjtag=center服务名称
CATALINA_OPTS="-server-Dtjtag=center-Dtomcat.server.port=${serverPort}-Dtomcat.http.port=${httpPort}-Dtomcat.deploy.home=${warFile}"
CATALINA_OPTS="${CATALINA_OPTS}-Xms${minMsMem}-Xmx${maxMsMem}-Xss${ssMem}-Xmn${mnMem}-XX:SurvivorRatio=${survivorRatior}-XX:PermSize=${minPermSize}-XX:MaxPermSize=${maxPermSize}"
CATALINA_OPTS="${CATALINA_OPTS}-XX:+UseCompressedOops-XX:+TieredCompilation-XX:+AggressiveOpts-XX:+UseBiasedLocking"
CATALINA_OPTS="${CATALINA_OPTS}-XX:+DisableExplicitGC-XX:+UseConcMarkSweepGC-XX:+UseParNewGC-XX:+CMSParallelRemarkEnabled-XX:+UseCMSCompactAtFullCollection-Xnoclassgc-XX:MaxTenuringThreshold=${threshold}-XX:CMSInitiatingOccupancyFraction=${fraction}-XX:LargePageSizeInBytes=${pageSize}-XX:+UseFastAccessorMethods-XX:+UseCMSInitiatingOccupancyOnly-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=${heapDumpPath}"
#JVMargssettingsend
exportCATALINA_BASE=${DOMAIN_HOME}/${projectName}
exportCATALINA_OPTS
exportCATALINA_OUT="${logFile}"
exportCATALINA_PID="${pidFile}"
exportCATALINA_OPTS
${TOMCAT_HOME}/bin/catalina.shstart
exit$?
$cd/data/zhnx/sbin
[/code]
#脚本二
$vistopcenter.sh
#!/bin/bash
#下面需要修改的地方
#1、HOME=/data/zhnx根据自己建的目录
#2、JAVA_HOME=/usr/local/jdk1.7根据自己JDK的路劲
exportHOME=/data/zhnx
exportJAVA_HOME=/usr/local/jdk1.7
exportDOMAIN_HOME=${HOME}/domain
exportLOG_HOME=${HOME}/logs
exportTOMCAT_HOME=${HOME}/server
exportCLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
exportPATH=${JAVA_HOME}/bin:${PATH}
#Variablesettingsbegin
#下面需要修改的地方
#1、exportprojectName=center项目名称,即war包名称
#2、exportserverPort=8001tomcat本地启动端口,以上面对应
exportprojectName=center
exportserverPort=8001
#Variablesettingsend
exportJAVA_OPTS="-Dtomcat.server.port=${serverPort}"
exportCATALINA_PID="${LOG_HOME}/${projectName}.pid"
exportCATALINA_BASE=${DOMAIN_HOME}/${projectName}
${TOMCAT_HOME}/bin/catalina.shstop30-force
exit$?
$cd/data/zhnx/sbin
[/code]
#脚本三
visuper.sh
checkProcess(){
pid=`ps-ef|grep${classname}|grep-v'grep'|awk'{print$2}'`
if["X${pid}"!="X"];then
return0
else
return1
fi
}
printStartStatus(){
checkProcess
if[$?-eq0];then
echo"${_moduleName}startsucessful.[OK]"
return0
else
echo"${_moduleName}startFailed.[Failed]"
return1
fi
}
startProcess(){
echo$1
checkProcess
if[$?-eq0];then
echo"${_moduleName}hadstarted."
return0
else
${start}
sleep3
printStartStatus
fi
}
stopProcess(){
echo$1
checkProcess
if[$?-eq1];then
echo"${_moduleName}notrunning.[FAILED]"
else
pid=`ps-ef|grep${classname}|grep-v'grep'|awk'{print$2}'`
if["X${pid}"="X"];then
echo"${_moduleName}hadstop.[OK]"
else
kill-9$pid
echo"${_moduleName}stopsucessful.[OK]"
fi
fi
}
restartProcess(){
stopProcess$1
startProcess$2
}
getProcessStatus(){
checkProcess
if[$?-eq0];then
echo"${_moduleName}isrunning."
return0
else
echo"${_moduleName}isnotrunning."
return1
fi
}
unstall(){
checkProcess
if[$?-eq0];then
pid=`ps-ef|grep${classname}|grep-v'grep'|awk'{print$2}'`
if["X${pid}"!="X"];then
kill-9$pid
fi
fi
${remove}
}
commandError(){
echo""
echo"ERROR:UNKNOWNCOMMAND:\"$_command\""
exit1
}
到目录/etc/rc.d/init.d/下新建一个脚本,这里与center项目为例:center
$cd/etc/rc.d/init.d/
#脚本四
$vicenter
#!/bin/sh
#下面需要修改的地方
#1、classname="tjtag=center"center服务名称
#2、_moduleName="center"modul名称
#3、start="/data/zhnx/sbin/startcenter.sh"上面新建的脚本
#4、./data/zhnx/sbin/super.sh上面新建的脚本
classname="tjtag=center"
_command=$1
_moduleName="center"
start="/data/zhnx/sbin/startcenter.sh"
./data/zhnx/sbin/super.sh
case$_commandin
start)
startProcess"Starting${_moduldName}:"
;;
stop)
stopProcess"Stoping${_moduldName}:"
;;
restart)
restartProcess"Stoping${_moduldName}:""Starting${_moduldName}:"
;;
status)
getProcessStatus
;;
*)
commandError
;;
esac
删除原始的并替换修改过的SERVER.XML
$cd/data/zhnx/domain/center/conf
$rm-rfserver.xml
viserver.xml
<?xmlversion='1.0'encoding='utf-8'?>
<Serverport="${tomcat.server.port}"shutdown="SHUTDOWN">
<ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="off"/>
<ListenerclassName="org.apache.catalina.core.JasperListener"/>
<ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<ListenerclassName="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<ListenerclassName="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resourcename="UserDatabase"auth="Container"
type="org.apache.catalina.UserDatabase"
description="Userdatabasethatcanbeupdatedandsaved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Servicename="Catalina">
<ConnectorURIEncoding="UTF-8"minSpareThreads="15"maxSpareThreads="30"enableLookups="false"disableUploadTimeout="true"acceptCount="500"maxThreads="50"maxProcessors="1000"minProcessors="10"useURIValidationHack="false"compression="on"compressionMinSize="512"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"protocol="org.apache.coyote.http11.Http11AprProtocol"port="${tomcat.http.port}"connectionTimeout="20000"/>
<Enginename="Catalina"defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/>
</Realm>
<Hostname="localhost"appBase="${tomcat.deploy.home}"unpackWARs="true"autoDeploy="false">
<Contextpath=""docBase="sso"sessionCookiePath="/"sessionCookieDomain=".qasite.com"useHttpOnly="true"crossContext="true"debug="0"reloadable="false">
<ManagerclassName="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.10.11:11220"sticky="false"lockingMode="auto"
sessionBackupAsync="false"sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
</Context>
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log."suffix=".txt"
pattern="%h%l%u%t"%r"%s%b"/>
</Host>
</Engine>
</Service>
</Server>
若有自己需要增加的jar就拷进去
$cd/data/zhnx/server/lib把jar考进去
项目部署
新建目录webapp名称与startcenter.sh里的webapps名称一样日志名称与服务名一样
$mkdir-p/data/zhnx/center_webapps
$mkdir-p/data/zhnx/logs/center
center.war部署至center_webapps
部署时需将对应webapps目录下的文件及文件夹清空;
然后把项目war包拷入对应webapps目录下
启动服务
servicecenterstart
相关文章推荐
- linux下tomcat应用部署
- 在linux环境下部署tomcat应用+配置优化
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- Linux下tomcat应用部署(通过Xshell+Xftp):Windows远程连接Linux服务器发布Tomcat Web应用程序
- linux下web应用部署在tomcat下操作步骤
- linux下安装tomcat服务及部署web应用
- 如何在阿里云linux服务器查看应用日志--部署在tomcat
- Linux上部署web应用(mysql,tomcat)
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- 在linux环境下部署tomcat应用
- 在linux下(cents7,redhat6.5等)搭建的tomcat服务器,远程访问不到部署的应用
- 将web应用部署到Linux下面的tomcat服务器
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- linux下部署tomcat+mysql应用时的注意事项
- 在linux环境下部署tomcat应用+配置优化
- 3-linux下部署tomcat应用
- Linux下安装Tomcat服务器和部署Web应用
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- 如何在Linux下使用Tomcat部署Web应用(图文)
- Linux中部署tomcat下的应用