Tomcat部署与调优

部署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队列的长度跟这个参数有关


猜你喜欢

转载自blog.csdn.net/m0_38139137/article/details/90482060