Linux系统安装tomcat
<p>[TOC]</p>
<h3>安装包下载地址:[点击下载tomcat](<a href="http://101.69.243.254:5010/share/6s8sqkcS">http://101.69.243.254:5010/share/6s8sqkcS</a> "点击下载tomcat安装包") [点击下载jdk](<a href="http://101.69.243.254:5010/share/O-T-qp-g">http://101.69.243.254:5010/share/O-T-qp-g</a> "点击下载jdk安装包")</h3>
<h2>一、准备环境</h2>
<table>
<thead>
<tr>
<th>服务器</th>
<th>tomcat版本</th>
<th>jdk版本</th>
</tr>
</thead>
<tbody>
<tr>
<td>centos7</td>
<td>8.5.68</td>
<td>1.8.0_221</td>
</tr>
</tbody>
</table>
<h2>二、安装JDK</h2>
<p>创建安装目录</p>
<pre><code class="language-shell">mkdir -p /risen/soft/jdk</code></pre>
<p>解压</p>
<pre><code class="language-shell">tar -zxvf jdk-8u221-linux-x64.tar.gz
mv jdk1.8.0_221/ /risen/soft/jdk/jdk1.8</code></pre>
<p>设置环境变量</p>
<pre><code class="language-shell">vim /etc/profile
export JAVA_HOME=/risen/soft/jdk/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH</code></pre>
<p>重新加载环境变量</p>
<pre><code class="language-shell">source /etc/profile
java -version # 查看jdk版本信息</code></pre>
<p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/ca711cd9e001404600cf6f90913c1a54" alt="" /></p>
<h2>三、安装tomcat</h2>
<pre><code class="language-shell">mkdir -p /risen/soft/tomcat # 创建tomcat安装目录
unzip apache-tomcat-8.5.63.zip #上传并解压安装包
mv apache-tomcat-8.5.63 /risen/soft/tomcat/tomcat8_项目名_端口 # 如tomcat8_oa_8081
cd /risen/soft/tomcat/tomcat8_项目名_端口/bin/
chmod +x catalina.sh startup.sh shutdown.sh</code></pre>
<h2>四、优化内核及TCP连接数</h2>
<pre><code class="language-shell">vim /etc/sysctl.conf
fs.file-max = 655350 # 系统文件描述符总量
net.ipv4.ip_local_port_range = 1024 65535 # 打开端口范围
net.ipv4.tcp_max_tw_buckets = 5000 # 设置tcp连接时TIME_WAIT个数
net.ipv4.tcp_tw_recycle = 1 # 开启快速tcp TIME_WAIT快速回收
net.ipv4.tcp_tw_reuse = 1 # 开启TIME_WAIT重用
net.ipv4.tcp_syncookies = 1 # 开启SYN cookies 当出现syn等待溢出,启用cookies来处理,可防范少量的syn攻击
net.ipv4.tcp_syn_retries = 2 # 对于一个新建的tcp连接,内核要发送几个SYN连接请求才决定放弃
net.ipv4.tcp_synack_retries = 2 # 这里是三次握手的第二次连接,服务器端发送syn+ack响应 这里决定内核发送次数
net.ipv4.tcp_keepalive_time = 1200 # tcp的长连接,这里注意:tcp的长连接与HTTP的长连接不同
net.ipv4.tcp_fin_timeout = 15 # 设置保持在FIN_WAIT_2状态的时间
net.ipv4.tcp_max_syn_backlog = 20000 # tcp半连接最大限制数
net.core.somaxconn = 65535 # 定义一个监听最大的队列数
net.core.netdev_max_backlog = 65535 # 当网络接口比内核处理数据包速度快时,允许送到队列数据包的最大数目
sysctl -p # 保存退出,执行使修改即刻生效</code></pre>
<h2>五、优化系统ulimit的open file</h2>
<pre><code>echo ulimit -n 65535 &gt;&gt;/etc/profile
source /etc/profile
ulimit -n</code></pre>
<pre><code class="language-shell">vim /etc/security/limits.conf
* hard nofile 102400
* soft nofile 102400</code></pre>
<p>如果某项服务已经启动,再动态调整ulimit是无效的,特别是涉及到线上业务就更麻烦了。
这时,可以考虑通过修改/proc/'程序pid'/limits来实现动态修改!!!</p>
<h2>六、优化tomcat配置文件中的server.xml</h2>
<pre><code class="language-shell">vim /risen/soft/tomcat/tomcat8_项目名_端口/conf/server.xml
&lt;!--&lt;Connector port=&quot;8009&quot; protocol=&quot;AJP/1.3&quot; redirectPort=&quot;8443&quot; /&gt;--&gt;
开启:
&lt;Executor name=&quot;tomcatThreadPool&quot; namePrefix=&quot;catalina-exec-&quot;
maxThreads=&quot;500&quot; minSpareThreads=&quot;50&quot; prestartminSpareThreads=&quot;true&quot; maxQueueSize=&quot;100&quot;/&gt;
参数说明:
maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 1000,根据硬件设施和业务来判断
minSpareThreads:Tomcat 初始化时创建的线程数,默认设置 25
prestartminSpareThreads: 在 Tomcat 初始化的时候就初minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就没效果了
maxQueueSize,最大的等待队列数,超过则拒绝请求</code></pre>
<p>配置:</p>
<pre><code class="language-shell">&lt;Connector executor=&quot;tomcatThreadPool&quot; port=&quot;18080&quot; protocol=&quot;org.apache.coyote.http11.Http11Nio2Protocol&quot; connectionTimeout=&quot;20000&quot; URIEncoding=&quot;UTF-8&quot; redirectPort=&quot;8443&quot; /&gt;</code></pre>
<h2>七、优化tomcat的JVM参数</h2>
<pre><code class="language-shell">vim /risen/soft/tomcat/tomcat8_项目名_端口/bin/catalina.sh
增加如下配置:
CATALINA_OPTS=&quot;-Dfile.encoding=UTF-8 -server -Xms2048m -Xmx4096m&quot;
参数说明:
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;</code></pre>
<h2>八、启动tomcat并设置开机自启</h2>
<pre><code class="language-shell">cd /risen/soft/tomcat/tomcat8_项目名_端口/bin/
./startup.sh # 启动tomcat服务
./shutdown.sh # 关闭tomcat服务</code></pre>
<pre><code class="language-shell">chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local
在文件末尾添加
# 开机启动tomcat服务并放入后台
sh /risen/soft/tomcat/tomcat8_项目名_端口/bin/startup.sh &amp;</code></pre>
<p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/a7420c72f67e12fe61a46a37d7264fd7" alt="" /></p>