关于tomcat操作

来源:互联网 发布:京东店铺销量数据 编辑:程序博客网 时间:2024/05/22 04:50

Linux操作系统环境下Tomcat的安装与配置

一、Tomcat安装及JDK安装

1.Tomcat下载:

可根据实际需要选择要下载的Tomcat,我们大多数用的为tomcat6,最新版本为tomcat6.0.43

http://tomcat.apache.org/download-60.cgi

下载core的tar.gz

注意:windows版本的tomcat要根据操作系统的位数来选择进行下载。

Deployer:为开发版本,存在不稳定因素。

 

2.Tomcat安装:

第一步:将下载的tar.gz报移动到要安全的目录下,我们习惯在/opt下。

# mvapache-tomcat-6.0.43.tar.gz /opt/

第二步:解压目录

# tar zxvfapache-tomcat-6.0.43.tar.gz  解压完毕后会看到apache-tomcat-6.0.43 文件夹。

第三步:为了方便,最好更好一下文件夹名字

# mv apache-tomcat-6.0.43tomcat6   

3.下载JDK:

根据自己操作系统的版本和操作系统位数来选择要下载的jdk版本。

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

4. JDK安装:

第一步:将下载的.bin安装文件移动到要安装的目录下,通常为/opt/目录下

# mvjdk-6u45-linux-x64.bin /opt/

第二步:赋予 jdk-6u45-linux-x64.bin 可执行权限

# chmod +xjdk-6u45-linux-x64.bin

第三步:执行 ./jdk-6u45-linux-x64.bin 进行安装。安装完毕后会看到一个jdk1.6.0_37                   文件夹。

 

5.配置环境变量:

 # cd /root/

 #vim .bash_profile

  在最后添加:

      JAVA_HOME=/opt/jdk1.6.0_37#JDK安装路径

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

export PATHJAVA_HOME

使用 source .bash_profile 生效。

6.启动测试:

二、Tomcat配置及优化:

1.配置端口及编码格式(解决中文乱码和静态化某些符号乱码):

修改$CATALINA_HOME/conf/server.xml中:

修改前:   

 <Connector port="8080"protocol="HTTP/1.1"

              connectionTimeout="20000"

               redirectPort="8443"/>

修改后:

<Connectorport="80" maxHttpHeaderSize="8192"  maxThreads="1000"minSpareThreads="25" maxSpareThreads="75"enableLookups="false" redirectPort="8443"acceptCount="2000" connectionTimeout="20000"disableUploadTimeout="true" URIEncoding="UTF-8或者GBK" />

Port:端口号。

maxHttpHeaderSize:客户端Http请求、响应的Header的最大限制。

maxThreads:Tomcat可创建的最大线程数。

minSpareThreads:Tomcat初始化时创建的线程数。

maxSpareThreads:一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址

redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

connectionTimeout:指定超时的时间数(以毫秒为单位)。

URIEncoding:采用的编码格式设定。

 

2.Access日志格式设定:

修改$CATALINA_HOME/conf/server.xml中:

修改前:

 <!--

 <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log."suffix=".txt" pattern="common"resolveHosts="false"/>

 -->

修改后:

  <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log." suffix=".txt"pattern='%t %a %A %p "%r" %s %D "%{USER-AGENT}i""%{Referer}i" "%h" "%H" "%b""%m" "%q" "%S" "%U" "%T""%I" "%{X-FORWARDED-FOR}i" "%{cookie}i""%{CONTENT-TYPE}o" "%{Via}i" "%{X-UP-BEAR-TYPE}i""%{X-UP-CALLING-ID}i" "%{X-WAP-PROFILE}i"' resolveHosts="false"/>

日志输出如下:

[18/Mar/2015:10:25:26+0800] 10.168.17.108 10.162.74.231 80 "POST /newsdk_json_login.doHTTP/1.1" 200 25 "Jakarta Commons-HttpClient/3.1" "-""10.168.17.108" "HTTP/1.1" "172" "POST""" "-" "/newsdk_json_login.do" "0.025""http-80-103" "-" "-" "-" "-""-" "-" "-"

参数详解:

className:实现的Java类名。必须被设置成org.apache.catalina.valves.AccessLogValve。

Directory:日志存储的路径。

Prefix:生成日志的前缀,可根据自己需要进行修改。

Suffix:生成日志的后缀名。

resolveHosts:将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址。

Pattern:access的最主要部门,日志的格式定义。

属性说明:

%t :日志和时间,使用通常的Log格式

%a:远端IP地址

%A:本地IP地址

%p :收到请求的本地端口号

%r :请求的第一行,包含了请求的方法和URI

%s:响应的状态码

%D:处理请求的时间,以毫秒为单位

%{USER-AGENT}i:

%{Referer}i

%h:远端主机名

%H:请求协议

%b:发送的字节数,不包括HTTP头,如果为0,使用"-"

%m:请求的方法(GET,POST,等)

%q:查询字符串(如果存在,以 '?'开始)

%S:用户的session ID

%U:请求的URI路径

%T:处理请求的时间,以秒为单位

%I:从identd返回的远端逻辑用户名(总是返回 '-')

%{X-FORWARDED-FOR}i

%{cookie}i

%{CONTENT-TYPE}o

%{Via}i

%{X-UP-BEAR-TYPE}i

{X-UP-CALLING-ID}i

%{X-WAP-PROFILE}i

另外还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。

%{xxx}i – 记录客户端请求中带的HTTP头xxx(incoming headers)

%{xxx}c – 记录特定的cookie xxx

%{xxx}r – 记录ServletRequest中的xxx属性(attribute)

%{xxx}s – 记录HttpSession中的xxx属性(attribute)

 

3.添加站点域名:

    修改$CATALINA_HOME/conf/server.xml中: 

<Hostname="localhost" appBase="webapps"

            unpackWARs="true"autoDeploy="true"

            xmlValidation="false"xmlNamespaceAware="false">

 </Host>

Name:默认为localhost,可根据实际情况设置成自己的域名,例如:test.gamecomb.com。

appBase:appBase为自己的实际开发目录。

 

4.Tomcat支持多站点域名:

如果想要添加多个虚拟主机,则需要添加多个host,在上一个</Host>后面添加:

<HostappBase="webroot" autoDeploy="true"name="yjsg.gamecomb.com" unpackWARs="true"xmlNamespaceAware="false" xmlV

alidation="false">

<ContextdocBase="/opt/tomcat6/webroot/yjsg" path=""reloadable="true"/>

<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" suffix=".txt" pattern="%t %a %A %p &quot;%r&quot;%s %D &quot;%{User-Agent}i&quot;"fileDateFormat="yyyy-MM-dd" resolveHosts="false"prefix="yjsg_access_log."/>

</Host>

docBase:相对于appBase来说,可以为相对路径,也可以为绝对路径。

5.修改Tomcat的日志输出等级:

修改conf/logging.properties中:

设置catalina localhost managerhost-manager日志级别为FINE级别:

1catalina.org.apache.juli.FileHandler.level= FINE

1catalina.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

1catalina.org.apache.juli.FileHandler.prefix= catalina.

2localhost.org.apache.juli.FileHandler.level= FINE

2localhost.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

2localhost.org.apache.juli.FileHandler.prefix= localhost.

3manager.org.apache.juli.FileHandler.level= FINE

3manager.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

3manager.org.apache.juli.FileHandler.prefix= manager.

4host-manager.org.apache.juli.FileHandler.level= FINE

4host-manager.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

4host-manager.org.apache.juli.FileHandler.prefix= host-manager.

 

禁止catalina localhost managerhost-manager的所有日志输出:

1catalina.org.apache.juli.FileHandler.level= OFF

1catalina.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

1catalina.org.apache.juli.FileHandler.prefix= catalina.

2localhost.org.apache.juli.FileHandler.level= OFF

2localhost.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

2localhost.org.apache.juli.FileHandler.prefix= localhost.

3manager.org.apache.juli.FileHandler.level= OFF

3manager.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

3manager.org.apache.juli.FileHandler.prefix= manager.

4host-manager.org.apache.juli.FileHandler.level= OFF

4host-manager.org.apache.juli.FileHandler.directory= ${catalina.base}/logs

4host-manager.org.apache.juli.FileHandler.prefix= host-manager.

6.添加tomcat下可以打开的文件格式:

修改conf/web.xml:例如添加支持zip格式

<mime-mapping>

        <extension>zip</extension>

       <mime-type>application/zip</mime-type>

    </mime-mapping>

7.禁止程序目录以列表形式显示:

修改conf/web.xml

<init-param>

           <param-name>listings</param-name>

           <param-value>false</param-value>

</init-param>

将值设置为false即可。

8.Tomcat虚拟内存配置:

配置虚拟内容的作用是为了防止tomcat内存溢出和堆栈溢出。

修改$CATALINA_HOME/bin/catalina.sh,添加如下代码:

JAVA_OPTS="-server-Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=2048m -XX:-UseGCOverheadLimit"

-Xms:JVM初始化堆的大小,默认为64M,最大不能超过物理内存的80%。

-Xmx:JVM堆的最大值,最大不超过物理内存的80%,一般和-Xms设置的大小一样。

-XX:PermSize:设置非堆内存的初始值默认是物理内存的1/64。

-XX:MaxPermSize:设置最大非堆内存的大小默认是物理内存的1/4。

服务器为64位、2G内存:

JAVA_OPTS='-server-Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

 

9.Tomcatcronolog日志自动切割

1、下载(最新版本)

# wgethttp://cronolog.org/download/cronolog-1.6.2.tar.gz

2、解压缩

# tar zxvfcronolog-1.6.2.tar.gz

3、进入cronolog安装文件所在目录

# cd cronolog-1.6.2

4、运行安装

# ./configure

# make

# make install

5、查看cronolog安装后所在目录(验证安装是否成功)

# which cronolog

一般情况下显示为:/usr/local/sbin/cronolog

6.进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容(因为我们一般不会在-security条件下运行),

     else

    “$_RUNJAVA” $JAVA_OPTS$CATALINA_OPTS \

    -Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH” \

    -Dcatalina.base=”$CATALINA_BASE” \

    -Dcatalina.home=”$CATALINA_HOME” \

    -Djava.io.tmpdir=”$CATALINA_TMPDIR” \

    org.apache.catalina.startup.Bootstrap “$@” start  \

    >> “$CATALINA_BASE”/logs/catalina.out2>&1 &

 

    if [ ! -z "$CATALINA_PID" ]; then

    echo $! > $CATALINA_PID

    fi

    fi

修改

org.apache.catalina.startup.Bootstrap“$@” start  \

>> “$CATALINA_BASE”/logs/catalina.out2>&1 &

org.apache.catalina.startup.Bootstrap“$@” start2>&1 \

|/usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out>> /dev/null &

同时,上面有一行

touch “$CATALINA_BASE”/logs/catalina.out

可以注释掉,完成之后重起Tomcat就可以了,在logs目录下可以看到catalina.2015-02-18.out的日志,是按日生成的。

 

 

原创粉丝点击