vim /etc/profile #底部追加
export JAVA_HOME=/usr/local/jdk1.8.0_131/ export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export TOMCAT_HOME=/usr/local/tomcatsource /etc/profile
vim conf/tomcat-users.xml
#配置两个角色 <role rolename="manager-gui"/> <role rolename="admin-gui"/> #配置tomcat用户 <user username="tomcat" password="wmj123" roles="manager-gui,admin-gui"/>/usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
访问地址: http://172.16.1.211:8080/host-manager/html 账号:tomcat 密码:wmj123
Web应用程序可以通过Web容器提供的getRemoteHost()方法获得访问Web应用客户的IP地址和名称,但是这样会消耗Web容器的资源,并且还需要通过IP地址和DNS服务器反查用户的名字。因此当系统上线时,可以将这个属性关闭,从而减少资源消耗,那么Web应用也就只能记录下IP地址。修改的属性是enableLoopups=”false”。
Tomcat通过线程池来为用户访问提供响应,对于上线的系统初步估计用户并发数量后,再调整线程池容量。例如,用户并发数量在100左右时,可以设置minProcessors=”100”,maxProcessors=”100”。将最大和最小设置为一样后,线程池不会再释放空闲的线程,当用户访问突然增加时,不需要再消耗系统资源去创建新的线程。
这个其实最复杂,即使用户并发量大,但是系统反应速度快,也没必要把这个值设置太高,高了系统需要消耗大量的资源去切换线程,但是如果设置太低也会造成应用无法满足用户并发需要。因此设置这个最好能够结合整个系统的跟踪与调优,使系统达到最好的平稳状态,一般设置为maxProcessors的1.5倍即可。
vim conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" #设置编码 minSpareThreads="25" #Tomcat初始化时创建的 socket线程数 maxSpareThreads="75" #Tomcat连接器的最大空闲socket 线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50 enableLookups="false" #屏蔽DNS查询 disableUploadTimeout="true" #该标志位表明当执行servlet时,是否允许servlet容器使用一个不同的、更长的连接超时。启用该标志位将导致在上传数据时,要么使用更长的时间完成上传,要么出现更长的超时。如果不指定,该属性为“false”。 connectionTimeout="20000" #网络超时时间 acceptCount="300" #当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,满了之后客户请求会被拒绝. maxThreads="300" #这个值表示Tomcat可创建的最大的线程数,即最大并发数,默认值为“200” maxProcessors="1000" #最大连接线程数,即:并发处理的最大请求数,默认值为75 ,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程 minProcessors="5" #最小空闲连接线程数,用于提高系统处理性能,默认值为10 useURIValidationHack="false" #可以减少它对一些url的不必要的检查从而减省开销。 <!-- 前端使用nginx作为反向代理,不需要启用tomcat压缩功能。 compression="on" #打开压缩功能 compressionMinSize="2048" #启用压缩的输出内容大小,这里面默认为2KB compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" #压缩类型 --> redirectPort="8443"/>优化catalina.sh配置文件。在catalina.sh配置文件中添加以下代码:
JAVA_OPTS="-server -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true" -server:一定要作为第一个参数,在多个CPU时性能佳 -Xms:初始堆内存Heap大小,使用的最小内存,cpu性能高时此值应设的大一些 -Xmx:初始堆内存heap最大值,使用的最大内存 上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半或者1/4。 -XX:PermSize:设定内存的永久保存区域,建议设置128m,如果java包很大,可以相应扩大。 -XX:MaxPermSize:设定最大内存的永久保存区域,建议设置128m,如果java包很大,可以相应扩大。 ------- 下面的可以使用默认或者根据应用调整 ----------- -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k. +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。 -Xss:每个线程的Stack大小 -verbose:gc 现实垃圾收集信息 -Xloggc:gc.log 指定垃圾收集日志文件 -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一 -XX:+UseParNewGC :缩短minor收集的时间 -XX:+UseConcMarkSweepGC :缩短major收集的时间若 Tomcat 都是放在内网的,则针对 Tomcat 服务的监听地址都是内网地址
标准配置:<Connector port="10000" server="webserver"/>针对该信息的显示是由一个jar包控制的,该jar包存放在$CATALINA_HOME/lib目录下,名称为 catalina.jar,通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,修改 org/apache/catalina/util/ServerInfo.properties 文件中的 serverinfo 字段来实现来更改我们tomcat的版本信息
$ cd $CATALINA_HOME/lib $ jar xf catalina.jar $ cat org/apache/catalina/util/ServerInfo.properties |grep -v '^$|#' $ mkdir -p org/apache/catalina/util $ vim ServerInfo.properties server.info=nolinux # 把这个值改成其它值就行了 自定义错误页面:修改$CATALINA_HOME/conf/web.xml重定向 403/404/500等错误到指定的错误页面Tomcat启动用户权限必须非root权限,尽量降低tomcat启动用户的目录访问权限,如需直接对外使用80端口,可通过普通账号启动后,配置iptables规则进行转发,为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。要将 Tomcat 和项目的属主做分离,即便被破坏也无法创建和编辑项目文件。
开启tomcat默认访问日志中Referer和User-Agent记录
标准配置: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b %{Referer}i %{User-Agent}i %D" resolveHosts="false" />http://www.mamicode.com/info-detail-1521653.html