知识库

标准化实施手册及常见错误


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> &quot;点击下载tomcat安装包&quot;) [点击下载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> &quot;点击下载jdk安装包&quot;)</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 &amp;gt;&amp;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 &amp;lt;!--&amp;lt;Connector port=&amp;quot;8009&amp;quot; protocol=&amp;quot;AJP/1.3&amp;quot; redirectPort=&amp;quot;8443&amp;quot; /&amp;gt;--&amp;gt; 开启: &amp;lt;Executor name=&amp;quot;tomcatThreadPool&amp;quot; namePrefix=&amp;quot;catalina-exec-&amp;quot; maxThreads=&amp;quot;500&amp;quot; minSpareThreads=&amp;quot;50&amp;quot; prestartminSpareThreads=&amp;quot;true&amp;quot; maxQueueSize=&amp;quot;100&amp;quot;/&amp;gt; 参数说明: maxThreads:最大并发数,默认设置 200,一般建议在 500 ~ 1000,根据硬件设施和业务来判断 minSpareThreads:Tomcat 初始化时创建的线程数,默认设置 25 prestartminSpareThreads: 在 Tomcat 初始化的时候就初minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就没效果了 maxQueueSize,最大的等待队列数,超过则拒绝请求</code></pre> <p>配置:</p> <pre><code class="language-shell">&amp;lt;Connector executor=&amp;quot;tomcatThreadPool&amp;quot; port=&amp;quot;18080&amp;quot; protocol=&amp;quot;org.apache.coyote.http11.Http11Nio2Protocol&amp;quot; connectionTimeout=&amp;quot;20000&amp;quot; URIEncoding=&amp;quot;UTF-8&amp;quot; redirectPort=&amp;quot;8443&amp;quot; /&amp;gt;</code></pre> <h2>七、优化tomcat的JVM参数</h2> <pre><code class="language-shell">vim /risen/soft/tomcat/tomcat8_项目名_端口/bin/catalina.sh 增加如下配置: CATALINA_OPTS=&amp;quot;-Dfile.encoding=UTF-8 -server -Xms2048m -Xmx4096m&amp;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;amp;</code></pre> <p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/a7420c72f67e12fe61a46a37d7264fd7" alt="" /></p>

页面列表

ITEM_HTML