码迷,mamicode.com
首页 > Web开发 > 详细

Linux Tomcat JSP 布署详细教程

时间:2018-08-01 00:24:14      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:控制   rtu   虚拟   line   测试的   流量   调整   make   初始   

Linux Tomcat JSP动态网页解析 v7.0 ★★★

1 Tomcat 概述
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,Tomcat本身也是一个HTTP服务器,可以单独使用,apache是一个以C语言编写的HTTP服务器。Tomcat主要用来解析JSP语言。目前最新版本为8.0。

常见版本:5.5x 6.0x 7.0x

官网: Apache.tomcat.org

2 Tomcat JDK

JDK: java开发工具包,包含 JRE、javac 、javaw工具
JRE:java运行环境,在JDK包中
SDK:辅助开发工具, java开发的套件

针对不同使用的类库
J2EE: 企业应用
J2SE: 标准
J2ME: 手机

3 Tomcat 安装
安装tomcat之前需要安装jdk (Java Development Kit) 是 Java 语言的软件开发工具包(SDK)),这里选择jdk-6u18-linux-x64-rpm.bin,bin文件安装跟sh文件方法一样,sh ./ jdk-6u18-linux-x64-rpm.bin,回车即可,默认安装到/usr/java/jdk1.6.0_18目录下。

下载JDK与Tomcat.

? jdk下载地址:
? http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
? http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm
http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1480477540_8dd19bbd8e9b40171c9830eba9d480a6
配置JDK环境变量
配置java环境变量,vi /etc/profile 添加如下语句:
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
source /etc/profile //使环境变量立刻生效。
java -version //查看java版本,显示版本为1.6.0_18,证明安装成功。

? tomcat下载地址:
http://tomcat.apache.org
wget –c http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz
在官网下载tomcat相应版本,下载完后解压:
tar -xzf apache-tomcat-6.0.30.tar.gz
;mv apache-tomcat-8.0.39 /usr/local/tomcat即可。
启动tomcat,命令为:/usr/local/tomcat/bin/startup.sh

查看ps -ef |grep tomcat 进程及端口是否存在,
通过页面访问可以看到tomcat默认测试页面:

生成链接以便版本升级
ln -s apache-tomcat-7.0.54 server
生成链接以便版本升级
ln -s jdk1.7.0_55 latest
ln -s latest default

4 Tomcat 配置文件详解

<Server>................................Server层
<Service>............................Service层
<Connector/>
<Engine>..........................Engine层
<Host>.........................Host层
<Context/>...............Context层
</Host>
</Engine>
</Service>
<Server>

Server层
对应Server组件,表示整个Tomcat(Catalina Servlet容器),它处于Tomcat顶层,可以包含一个或多个Service层。
对应Service组件,是Server层中的一个逻辑功能层,包含一个Engine层,以及一个或多个Connector,Service组件将一个或多个Connector组件绑定到Engine层上,Connector组件侦听端口,获得用户请求,并将请求转发到Engine层处理,同时把处理结果转发给用户,从而实现一个特定的功能。
Engine层
对应Engine组件,负责请求分发处理,可以连接多个Connector,它从Connector接收请求后,解析出可以完成用户请求的URL,根据URL可以把请求匹配到正确的Host上,当Host处理完用户请求后,Engine层把结果返回给适合连接器,再由连接器传输给用户。
Host层
对应Host组件,表示一个虚拟主机,一个Engine层可以包含多个Host层,每个Host层可以包含一个或多个Context层,对应不同的web应用。
Context层
对应Context组件,代表某个虚拟主机上的实际目录或一个WAR,即单个Web应用程序,它运行在特定的虚拟主机中,使用最为频繁。一个Host层包含多个Context层,每一个Context都有唯一的路径,Host层接到请求后,根据用户请求的URL,将请求定位到Context层。

元素名 属性 解释
server port 指定一个端口,这个端口负责监听关闭tomcat 的请求
shutdown 指定向端口发送的命令字符串
service name 指定service 的名字
Connector ( 表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
minProcessors 服务器启动时创建的处理请求的线程数
maxProcessors 最大可以创建的处理请求的线程数
enableLookups 如果为true ,则可以通过调用request.getRemoteHost() 进行DNS 查询来得到远程客户端的实际主机名,若为false 则不进行DNS 查询,而是返回其ip 地址
redirectPort 指定服务器正在处理http 请求时收到了一个SSL 传输请求后重定向的端口号
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout 指定超时的时间数( 以毫秒为单位)
Engine ( 表示指定service 中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host 元素的name 属性值是一样的
Context ( 表示一个web 应用程序,通常为WAR 文件,关于WAR 的具体信息见servlet 规范) docBase 应用程序的路径或者是WAR 文件存放的路径
path 表示此web 应用程序的url 的前缀,这样请求的url为http://localhost:8080/path/ ****

reloadable  这个属性非常重要,如果为true ,则tomcat 会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重起tomcat 的情况下改变应用程序

host ( 表示一个虚拟主机 ) name 指定主机名
appBase 应用程序基本目录,即存放应用程序的目录
unpackWARs 如果为true ,则tomcat 会自动将WAR 文件解压,否则不解压,直接从WAR 文件中运行应用程序
Logger ( 表示日志,调试和错误信息) className 指定logger 使用的类名,此类必须实现org.apache.catalina.Logger 接口
prefix 指定log 文件的前缀
suffix 指定log 文件的后缀
timestamp 如果为true ,则log 文件名中要加入时间,如下例:localhost_log.2001-10-04.txt
Realm ( 表示存放用户名,密码及role的数据库) className 指定Realm 使用的类名,此类必须实现org.apache.catalina.Realm 接口
Valve ( 功能与Logger 差不多,其prefix 和suffix 属性解释和Logger 中的一样) className 指定Valve 使用的类名,如用org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息
directory 指定log 文件存放的位置
pattern 有两个值,common 方式记录远程主机名或ip 地址,用户名,日期,第一行请求的字符串,HTTP 响应代码,发送的字节数。combined 方式比common 方式记录的值更多

<?xml version=‘1.0‘ encoding=‘utf-8‘?>

<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

<Service name="Catalina">

<Connector port="8080" protocol="HTTP/1.1" # HTTP连接方式
connectionTimeout="20000"
redirectPort="8443" /> # 重定向8443

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

AJP连接方式

<Engine name="Catalina" defaultHost="localhost">

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
->

<Realm className="org.apache.catalina.realm.LockOutRealm">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

自动解压war包 自动布署 (生产建议关闭自动布署)

<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
->

<Valve className="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>

注意:tomcat的配置文件中的注释内容不能使用#号,而要使用<!-- xxxxxx -->

5 Tomcat 定义发布目录

默认发布目录: /usr/local/tomcat/webapps/ROOT

【注】:修改发布目录时,要把源webapps/目录下所有文件rm –rf *,否则tomcat默认去找原目录
Vi /usr/local/tomcat/conf/server.xml
修改程序部署路径:
方法1:
<Host name="localhost" appBase="E:\www\javapms" unpackWARs="true" autoDeploy="true">

appBase="E:\www\javapms" 设置程序部署路径,
在server.xml尾部的</Host>前面插入下面一行参数。
方法2:<Context path="/" docBase="/data/webapps/www" reloadable="true"/>
</Host> #此处插入

path:浏览器访问时的路径名
docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目
reloadble:设定项目有改动时,tomcat是否重新加载该项目

测试网页index.jsp
<html>
<body>
<h1>tomcat jsp test page</h1>
<%=new java.util.Date()%>
</body>
</html>

6 Tomcat 服务与端口

【注意】:生产环境中,tomcat有二个工作目录,
[root@tomcat01 tomcat8]# ll
rw-r--r--. 1 root root 16195 11月 9 2016 RUNNING.txt
drwxr-xr-x. 4 root root 4096 11月 30 08:51 temp
drwxr-xr-x. 7 root root 4096 11月 29 08:53 webapps
drwxr-xr-x. 3 root root 21 11月 14 23:22 work
此工作目录发产生一些临时文件,建议在重启tomcat的时候,手动清空这二个文件夹。

6.1 启动和关闭

常用java解析器: tomcat resin jboss weblogic websphere

生产使用环境:tomcat6.0
生产管理环境:
chown -R tomcat.tomcat /usr/local/jdk/
chown -R tomcat.tomcat /usr/local/tomcat
su - tomcat 切换到tomcat用户下执行启动tomcat

停止
PID =$(ps -ef |grep java |grep -v "grep"|awk ‘{print $2}‘) # 通过shell取java的PID
Kill -9 PID

/usr/local/tomcat8/bin/shutdown.sh

启动
/usr/local/tomcat8/bin/startup.sh

6.2 默认端口:8005 8080 8009
关管端口 shutdown.sh的控制端口
访问端口 http连接端口
代理端口

6.3 防火墙配置:

打开防火墙,使外部能访问
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart
或直接修改文件/etc/sysconfig/iptables.
vi /etc/sysconfig/iptables
A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
service iptables restart
在浏览器输入: http://192.168.16.133:8080
如在本机可以输入: http://localhost:8080
出现tomcat的页面表示安装成功.

6.4 jsp测试页:
vim /usr/local/tomcat8/webapps/ROOT/index.jsp
<html>
<body>
<center>Now time is: <%=new java.util.Date()%></center>
</body>
</html>

7 Tomcat 管理 进程脚本

/usr/local/tomcat/webapps/ROOT 发布目录 tomcat

如果启动多个tomcat服务,需要修改 800
8080 8009端口, 复制一次tomcat目录

Tomcat守护进程脚本

!/bin/bash

usage(){
echo "USAGE: start | stop | status"
}
define PID
tomcat_pid=ps -ef |grep tomcat | grep -v "grep" |awk ‘{print $2}‘
TOMCAT_PATH=/usr/local/tomcat/
start(){
/usr/local/tomcat8/bin/startup.sh
}
status(){
ps -ef |grep tomcat | grep -v "grep"
}

stop(){
kill -9 $tomcat_pid
sleep 5

cd $TOMCAT_PATH

rm temp/ -rf
rm work/
-rf

TOMCAT_STATUS=$tomcat_pid

if [ -z $TOMCAT_STATUS ];then
echo "tomcat stop"
else
kill -9 $tomcat_pid
fi

}

MAIN(){
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
*)
usage
esac
}

MAIN $1

8 Tomcat 安全管理配置规范

8.1 管理端口保护8005
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 35830/java

[root@apache01 webapps]# telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is ‘^]‘.
SHUTDOWN
能过telnet命令连接到8005端口,可以执行SHUTDOWN命令关闭tomcat

优化方案:
修改默认的8005端口,修改shutdown指定字符串
<Server port="8005" shutdown="SHUTDOWN">
将端口修改成随机端口,将关闭命令修改成任意字符

8.2 ajp连接端口8009
修改默认的8009端口,通过Iptables控制ajp端口访问
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

保护此端口的目的在于防止线下的测试流量被mod_jk转发至线上tomcat服务器

8.3 禁用管理端
删除tomcat/目录的一些host-manager docs examples 或者将tomcat的目录设定为
tomcat以外的目录
对于前端web模块,tomcat管理端属于tomcat高危安全隐患,一旦被攻破,×××通过上
传web shell的方式将会直接取得服务器的控制

修改默认的发布目录站点位置
<Context path="/" docBase="/data/webapps/www"  debug="0" reloadable="true" crossContext="true"/>

8.4 降权启动

以非root用户启动tomcat

8.5 文件列表访问控制
conf/web.xml文件中default部分listings的配置必须为false;
false为不列出目录文件,true为允许,默认false
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>

8.6 版本信息隐藏

1.修改conf/web.xml,重定向403,404以及500等错误到指定的错误页面,
2. 也可以修改应用程序目录下的WEB-INF/web.xml下的配置进行错误页面的重定向

<error-page>
<error-code>403</error-code>
<location>/forbidden.jsp</location>
<error-code>404</error-code>
<location>/notfound.jsp</location>
</error-code>
<error-page>
<error-code>500</error-code>
<location>/systembusy.jsp</location>
</error-page>

在配置中对一些常见错误进么重定向,避免当出现错误时,tomcat默认显示的错误页面暴
露服务器和版本信息,必须确保程序根目录下的错误页面已经存在

8.7 server header重写
在HTTP Connector配置中加入server的配置
server="webserver"
当tomcat HTTP端口直接提供web服务时,此配置生效,加入此配置,将会替换http响
应server header部分的默认配置,默认是Apache-Coyote/1.1
示例:
[root@tomcat01 conf]# curl --head 127.0.0.1:8080
HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Cache-Control: private
Expires: Thu, 01 Jan 1970 08:00:00 CST
Content-Type: text/html
Content-Length: 559
Date: Sun, 31 Dec 2017 14:28:10 GMT

修改配置:
    <Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"
redirectPort="8443" server="nginx1.1"/>

修改后的结果
[root@tomcat01 scripts]# curl --head 10.204.3.7:8080
    HTTP/1.1 403 Forbidden
    Cache-Control: private
    Expires: Thu, 01 Jan 1970 08:00:00 CST
    Content-Type: text/html
    Content-Length: 559
    Date: Sun, 31 Dec 2017 14:33:57 GMT
    Server: nginx1.1

8.8 访问限制

通过限制,限制访问的ip来源
ip的白名单,拒绝非白名单IP的访问,此配置主要是针对高保密级别的系统,
<Context docBase="/data/webapps/www"  debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.*" deny="*.*.*.*" />
</Context>

8.9 起停脚本权限回收
去除其他用户对tomcat的bin目录下的shutdown.sh startup.sh catalina.sh的执行权限
chmod -R 744 tomcat/bin/*

8.10 访问日志格式规范
开启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 %b %{Referer}i %{User-Agent}i $D" resolveHosts="false" />

9 Tomcat的状态管理和host管理

管理状态页文件

/usr/local/tomcat8/webapps/manager

修改配置文件

vim /usr/local/tomcat8/conf/tomcat-users.xml
在最后</tomcat-users>段前添加的内容如下:
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

重启服务

访问状态页

http://10.204.3.6:8080/manager

10 Tomcat 多实例

11 Tomcat 性能优化

11.1 硬件资源优化
比如内存,硬盘
11.2 架构上的优化
利用缓存和压缩 在nginx前端
做动静分离 缓解tomcat压力
搭建集群 采用nginx请求分流

11.3 JVM参数调优
优化文件: /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS="
server
Xms6000M
Xmx6000M
Xss512k
XX:NewSize=2250M
XX:MaxNewSize=2250M
XX:PermSize=128M
XX:MaxPermSize=256M
XX:+AggressiveOpts
XX:+UseBiasedLocking
XX:+DisableExplicitGC
XX:+UseParNewGC
XX:+UseConcMarkSweepGC
XX:MaxTenuringThreshold=31
XX:+CMSParallelRemarkEnabled
XX:+UseCMSCompactAtFullCollection
XX:LargePageSizeInBytes=128m
XX:+UseFastAccessorMethods
XX:+UseCMSInitiatingOccupancyOnly
Duser.timezone=Asia/Shanghai
Djava.awt.headless=true"

参数的详细配置,参考:http://blog.51cto.com/zhongliang/2101918

11.4 Tomcat 参数优化
这里着重讲解tomcat参数的优化:server.xml文件,关闭DNS查询、配置最大并发等参数。
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100
当然这些值都不是越大越好,需要根据实际情况来设定。可以基于测试的基础上来不断的调优分析。

<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" 连接超时
redirectPort="8443"
maxThreads="500" 最大线程 就是最大并发数
minSpareThreads="20" 最小空闲线程数
acceptCount="100" 队列大小 等待处理的
disableUploadTimeout="true" 类似于Apache中的keeyalive一样
enableLookups="false" 关闭DNS查询
URIEncoding="UTF-8" />
maxSpareThreads : 最大空闲线程数
acceptCount是当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection
压缩
compression=”on” compressionMinSize=”2048″ compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

11.5 外部调优
禁用DNS查询
调整线程数(线程池)
maxThreads="600" 最大线程数
minSpareThreads="100" 初始化时创建的线程数
maxSpareThreads="500" 一旦创建的线程越过这个值,Tomcat就会关闭不再需要的socket线程
acceptCount="700" 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

压缩

11.6 java工具 监控和管理控制台

在windows端安装jdk包,找到以下命令
    在c:\ Program Files\jdk\bin\jconsole.exe   监控和管理控制台

通过IP:端口连接到监控和JAVA控制台
在c:\ Program Files\jdk\bin\jvisualvm.exe
通过IP:端口连接 管理工具

在tomcat服务器上修改配置文件 

catalina.sh中加入配置,放置在#!/bin/bash标签下
vim /usr/local/tomcat8/bin/catalina.sh

!/bin/bash
CATALINA_OPTS="$CATALINA_OPTS
Djava.rmi.server.hostname=10.204.3.7
Dcom.sun.management.jmxremote
Dcom.sun.management.jmxremote.port=12345
Dcom.sun.management.jmxremote.authenticate=true
Dcom.sun.management.jmxremote.ssl=false
Dcom.sun.management.jmxremote.pwd.file=/usr/local/jdk1.7/jre/lib/management/jmxremote.password"

配置权限文件

cd /usr/local/jdk1.7/jre/lib/management/
cp jmxremote.password.template jmxremote.password
vi jmxremote.password
zhongliang 123456 # 用户名zhongliang 密码249765270
chmod 600 jmxremote.password

重启tomcat服务,开启监听端口12345

连接jconsole和jvisualvm

输入远程主机:端口 10.204.3.7:12345

选择文件—》添加JMX..连接—》10.204.3.7:12345

CPU使用情况 堆,垃级回收 抽样器
实时线程数

注意:在控制台上执行GC清理的时候,会出现前端断连

12 Zabbix监控tomcat
zabbix编译的时候,指定--enable-java
yum安装的时候,yum install zabbix-java

vim zabbix_server.conf
JavaGateway=192.168.3.14
JavaGatewayPort=10052
StartJavaPollers=5

第三方工具,cmdline-jmxclient
    http://crawler.archive.org/cmdline-jmxclient/

13 Apache整合tomcat

安装httpd
安装tomcat
编译生成mod_jk。

下载tomcat-connectors-1.2.42-src.tar.gz包
Wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz

tar xzvf tomcat-connectors-1.2.42-src.tar.gz
cd tomcat-connectors-1.2.42/native
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/

配置。
在/usr/local/apache/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

vi mod_jk.conf#######################
添加以下内容:
指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache/conf/workers.properties

Where to put jk logs
JkLogFile /usr/local/apache/logs/mod_jk.log

Set the jk log level [debug/error/info]
JkLogLevel info

Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/ worker1
JkMount /
.jsp worker1

vi workers.properties###########################
添加以下内容:
Defining a worker named worker1 and of type ajp13
worker.list=worker1

Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

整合apache和tomcat
Vim httpd.conf#############
DirectoryIndex index.jsp index.html
添加index.jsp
LoadModule jk_module modules/mod_jk.so
加载mod_jk.so模块
Include /usr/local/apache/conf/mod_jk.conf
引入配置文件

将tomcat和apache的发布目录设置成一致。建立站点文件index.jsp

14 Nginx整合Tomcat 集群
T_INSTALL_DIR=/usr/local/tomcat
Port=export 8005+1
复制多个tomcat到tomcat1 tomcat2 tomcat3

修改对应每个发布目录的端口

安装nginx
tar zxvf nginx-1.7.8.tar.gz //解压
cd nginx-1.7.8
./configure --with-http_stub_status_module --with-http_ssl_module//启动server状态页和https模块
make && make install

修改nginx.conf配置文件,添加一个location
location ~ .(jsp|do)$ {
index index.jsp;
proxy_pass http://192.168.74.129:8081; //来自jsp或者do的后缀的请求交给tomcat处理</span>
proxy_redirect off;
proxy_set_header Host $host; //后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; //允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; //缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 90; //nginx跟后端服务器连接超时时间
proxy_read_timeout 90; //连接成功后,后端服务器响应时间
proxy_buffer_size 4k; //设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 6 32k; //proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k;//高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; //设定缓存文件夹大小,大于这个值,将从upstream服务器传
}

tomcat虚拟主机

tomcat 配置状态信息

tomcat配置错误页面优雅显示

tomcat配置管理页面

tomcat 配置日志管理

15 Tomcat故障

日志文件
/usr/local/tomcat/logs/catalina.out

【注】:tomcat查端口时正常,服务正常,但访问后,服务消失,
问题原因:因为配置文件不正确,导致报错,服务自动停止
解决方法:检查配置文件
例如:配置文件中没有定义发布目录,但是发布目录中的ROOT已被删除,会导致此类问题发生

15.1 cannot execute binary file

/usr/local/tomcat8/bin/catalina.sh: line 433: /usr/local/jdk1.8/bin/java: cannot execute binary file

[root@tomcat01 local]# java --version
bash: /usr/local/jdk1.8/bin/java: cannot execute binary file

原因:软件版本与系统版本不一致

15.2 insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.

tomcat部署jenkins启动报错:
insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.

解决该问题方法,修改tomcat/conf/context.xml文件,增加资源最大可缓存的大小:
<Resources
cachingAllowed="true"
cacheMaxSize="102400"
/>

Linux Tomcat JSP 布署详细教程

标签:控制   rtu   虚拟   line   测试的   流量   调整   make   初始   

原文地址:http://blog.51cto.com/zhongliang/2152908

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!