tomcat是一个优秀的web容器,它出自apache,开源免费。对于使用java技术的中小企业来说,用得最多的应该就是它了。以下是自己布署时最基本的配置。
1.使用多实例
多实例是指,所有系统共用一个tomcat程序,而配置文件分开。这样的好处是便于管理,而且也可以共享私有的lib库。升级tomcat或lib库只需一次操作,不易出错。
使用多实例很简单,把tomcat复制出来,重命名如:instance,可以看到如下目前。删除除了conf目录中其他目录中的所有文件。在bin目录中写自己的启动脚本。
如果是linux系统,在bin目录下新建tomcat.sh文件,内容如下:
export CATALINA_HOME="tomcat目录" export CATALINA_BASE="实例目录instance" case "$1" in start) if [ -f $CATALINA_HOME/bin/startup.sh ];then echo "start tomcat ..." $CATALINA_HOME/bin/startup.sh fi;; stop) if [ -f $CATALINA_HOME/bin/startup.sh ];then echo "stop tomcat ..." $CATALINA_HOME/bin/shutdown.sh fi;; *) echo $"Usage: $0 {start|stop}" exit 1;; esac
给tomcat.sh赋与启动权限就可以了。
启动:tomcat.sh start
停止:tomcat.sh stop
如果是windows系统,在bin目录下新建tomcat.bat文件,内容如下:
@echo off set CATALINA_HOME="tomcat目录" set CATALINA_BASE="实例目录instance" %CATALINA_HOME%\bin\startup.bat
双击tomcat.bat即可启动。
需要注意的是,多实例启动时,每个实例的端口不能一样。可以修改conf/server.xml配置文件,一共有四个端口:8005、8009、8080、8443。
2.修改tomcat连接数
修改tomcat的连接数可以增加并发,提高处理能力。
打开conf/server.xml,找到提供服务的端口:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改为:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="500" acceptCount="1000"/>
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
但是连接数不是越大越好。根据服务器的处理水平,经过反覆测试找到最优值。
附,其他参数设置和说明:
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
3.内存设置
设置tomcat服务所使用的内存大小,可以提高程序性能。比如上面使用了多实例,那么设置内存则在指定tomcat目录上一行加上:
linux:
export JAVA_OPTS="-server -Xmx1g -Xms512m -Xmn384m"
windows:
set JAVA_OPTS="-server -Xmx1g -Xms512m -Xmn384m"
这个参数其实就是设置jdk的内存使用大小。具体参数的说明和如何调优,可以多看一下jdk的相关资料。
4.关闭访问日志
如果服务访问较频繁,那么每天在logs目录下会产生大量的访问日志。文件会按天为单位根据日期命名,如:localhost_access_log.2017-11-05.txt。如果不关闭,很可能服务器会被日志撑满。
打开conf/server.xml配置文件,找到:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
注释掉或删除就可以了。
5.其他优化和配置
由于篇服有限,有些参数涉及较方,这里只是提出来,给出一个指引。都是根据业务产场决定是否使用。
开启APR运行模式(提高tomcat处理IO的能力)
会话共享(用于集群)