欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tomcat部署与调优

程序员文章站 2024-02-20 20:16:22
...

部署Tomcat

1.安装java-jdk环境
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-headless
java -version
查看java版本
2.安装Tomcat
解压源码包
tar -xf apache-tomcat-8.0.30.tar.gz

移动到/usr/local/下
mv apache-tomcat-8.0.30 /usr/local/tomcat

bin/ ##主程序目录
lib/ ##库文件目录
logs/ ##日志目录
temp/ ##临时目录
work/ ##自动编译目录jsp代码转换servlet
conf/ ##配置文件目录
webapps/ ##页面目录

3.启动服务
/usr/local/tomcat/bin/startup.sh

4.服务器验证端口信息
netstat -nutlp | grep java
8080 和8005端口是否打开
如果检查端口时,8005端口启动非常慢,可用使用下面的命令用urandom替换random(非必须操作).
mv /dev/random /dev/random.bak
ln -s /dev/urandom /dev/random

使用Tomcat部署虚拟主机

1.修改配置文件
cat /usr/local/tomcat/conf/server.xml

<Server>
   <Service>
     <Connector port=8080 />
     <Connector port=8009 />
     <Engine name="Catalina" defaultHost="localhost">
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
</Host>
… …

2.创建虚拟主机
mkdir -p /usr/local/tomcat/{a,b}/ROOT
echo “AAA” > /usr/local/tomcat/a/ROOT/index.html
echo “BBB” > /usr/local/tomcat/b/ROOT/index.html

3)重启Tomcat

修改www.b.com网站的首页目录为base

1.修改配置文件
vim /usr/local/tomcat/conf/server.xml

...
<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base"/>
</Host>
...

2.创建根目录
mkdir /usr/local/tomcat/b/base
echo “BASE” > /usr/local/tomcat/b/base/index.html

3.重启tomcat

页面跳转

1.当用户访问http://www.a.com/test打开/var/www/html目录下的页面
vim /usr/local/tomcat/conf/server.xml

<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="/test" docBase="/var/www/html/" />
</Host>
<Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true">
<Context path="" docBase="base" />
</Host>

2.编辑页面
echo “Test” > /var/www/html/index.html

3.重启tomcat

配置Tomcat支持SSL加密网站

1.创建加密用的私钥和证书文件
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore

提示输入密码为:123456
##-genkeypair 生成**对
##-alias tomcat **别名
##-keyalg RSA 定义**算法为RSA算法
##-keystore 定义**文件存储在:/usr/local/tomcat/keystore

2.修改server.xml配置文件,创建支持加密连接的Connector

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS" />

3.重启Tomcat

配置Tomcat日志

为每个虚拟主机设置不同的日志文件
1.vim /usr/local/tomcat/conf/server.xml

<Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true">
<Context path="/test" docBase="/var/www/html/" />
#从默认localhost虚拟主机中把Valve这段复制过来,适当修改下即可
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix=" a_access" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

2.重启tomcat
3.查看日志
ls /usr/local/tomcat/logs/

tomcat调优

1.修改server.xml文件

将 
<!--
 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
 maxThreads="150" minSpareThreads="4"/>
 -->
修改为:
  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"   maxThreads="1500" minSpareThreads="50" prestartminSpareThreads="true"/>
        #maxThreads 最大线程数
        #minSpareThreads 最小线程
        #prestartminSpareThreads 是否在启动前准备线程
将
<Connector port="8080"  protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" 
 />
修改为
 <Connector executor ="tomcatThreadPool" port="8009" protocol="org.apache.coyote.http11.Http11Nio2Protocol"  connectionTimeout="20000" maxConnections="10000"  redirectPort="8443" acceptCount="1500"/>
 #acceptCount 线程达到最大时,排队的最大请求个数
 #connectionTimeout 链接超时时间
#acceptCount与maxThreads设置一样大(最大请求数)
#tomcatThreadPool 线程池

2.linux系统对当前用户的单一进程同时可打开的文件数量的限制
ulimit -u 默认值为1024 。查看系统允许当前用户进程打开的文件数量
如果想支持更高并发可修改软硬限制,软限制是指Linux在当前系统能够承受的范围内进一步限制用户同时打开的文件数;硬限制则是根据系统硬件资源状况(主要是系统内存)计算出来的系统最多可同时打开的文件数量。通常软限制小于或等于硬限制。
vim /etc/security/limits.conf

#增加如下配置
prouser  soft   nofile 65536
prouser  hard nofile 65536
prouser  soft  nproc 65536
prouser hard nproc 65536

3.Linux网络内核对TCP连接的有关限制
vim /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_fin_timeout = 30 
#超时时间
net.ipv4.ip_local_port_range = 10000 65000 
#修改端口范围
net.ipv4.tcp_max_syn_backlog = 8192 
#允许多少个访问地址
net.ipv4.tcp_max_tw_buckets = 10000

net.core.somaxconn=8192      
#accept队列的长度跟这个参数有关


相关标签: Linux 应用