Linux平台下Tomcat的安装与优化

栏目: Java · 发布时间: 5年前

内容简介:Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat 服务器是一个免费的开放源代

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

Linux平台下Tomcat的安装与优化

一.Tomcat介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,

Tomcat处理静态HTML的能力不如Apache服务器。

二.Tomcat安装

安装前准备:

在安装Tomcat之前必须先安装JDK,JDK全称是 Java Development Kit,是SUN公司免费提供的 java 语言的软件开发 工具 包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些

字节码文件,从而保证了Java的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,所以需要预先下载好JDK和Tomcat

JDK下载地址:

  • http://www.oracle.com/technetwork/java/javase/downloads/
  • tomcat下载地址:http://tomcat.apache.org

1.卸载系统自带的openjdk并安装jdk

[root@tomcat1 ~]# rm -rf $(which java) 
 
[root@tomcat1 ~]# tar xf jdk-7u80-linux-x64.tar 
 
[root@tomcat1 ~]# mv jdk1.7.0_80/ /usr/local/java 

2.解压安装Tomcat

[root@tomcat1 ~]# tar xf apache-tomcat-8.5.20.tar.gz 
 
[root@tomcat1 ~]# mv apache-tomcat-8.5.20 /usr/local/tomcat8 

3.设置JAVA环境变量

[root@tomcat1 ~]# vim /etc/profile.d/java.sh 
 
export JAVA_HOME="/usr/local/java" ##设置java根目录 
 
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/tomcat8/bin #在PATH环境变量中添加java跟目录的bin子目录 
 
[root@tomcat1 ~]# . /etc/profile #将java.sh 脚本导入到环境变量,使其生效 

4.运行 java -version 或者 javac -version 命令查看java版本

[root@tomcat1 ~]# java -version 
 
java version "1.7.0_65" 
 
Java(TM) SE Runtime Environment (build 1.7.0_65-b17) 
 
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode) 

5.启动Tomcat

[root@tomcat1 ~]# /usr/local/tomcat7/bin/startup.sh 
 
Using CATALINA_BASE: /usr/local/tomcat7 
 
Using CATALINA_HOME: /usr/local/tomcat7 
 
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp 
 
Using JRE_HOME: /usr/local/java 
 
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar 
 
Tomcat started. 
 
Tomcat 默认运行在8080端口 
 
[root@tomcat1 ~]# netstat -anpt |grep :8080 
 
tcp 0 0 :::8080 :::* LISTEN 3318/java 

6.关闭Tomcat

[root@tomcat1 ~]# /usr/local/tomcat7/bin/shutdown.sh 
 
浏览器访问测试 http://IP:端口 

7.修改端口号

[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml 
 
修改端口: 
 
8080 - 9528 
 
8005 - 9529 
 
8009 - 9530 
 
[root@tomcat1 ~]# /usr/local/tomcat8/bin/startup.sh 
 
[root@tomcat1 ~]# netstat -anpt | grep java 
 
tcp 0 0 0.0.0.0:9528 0.0.0.0:* LISTEN 5625/java 
 
tcp 0 0 127.0.0.1:9529 0.0.0.0:* LISTEN 5625/java 
 
tcp 0 0 0.0.0.0:9530 0.0.0.0:* LISTEN 5625/java 
 
注意:关闭防火墙和selinux安全机制,如果是阿里云服务器,控制台安全组需要放行TCP协议8080端口。 
 
systemctl disable firewalld 永久关闭防火墙 
 
systemctl stop firewalld 临时关闭防火墙 
 
setenforce 0 关闭Selinux 

8.Tomcat 配置相关说明

/usr/local/tomcat 主目录(安装目录) 
 
bin 存放windows或 linux 平台上启动或关闭的Tomcat的脚本文件 
 
conf 存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml 
 
lib 存放Tomcat运行需要的库文件(JARS) 
 
logs 存放Tomcat执行时的LOG文件 
 
webapps Tomcat的主要Web发布目录(包括应用程序事例)htdocs(html php) 
 
work 存放jsp编译后产生的class文件 
 
[root@tomcat1 ~]# ls /usr/local/tomcat/conf/ 
 
catalina.policy 权限控制配置文件 
 
catalina.properties Tomcat属性配置文件 
 
context.xml 上下文配置文件(selinux) 
 
logging.properties 日志log相关配置文件 
 
server.xml 主配置文件 
 
tomcat-users.xml manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问) 
 
web.xml Tomcat的servlet,servlet-mapping,filter,MIME等相关配置 
 
server.xml 主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,开启https等功能。 

三.Tomcat优化

1.禁用tomcat的AJP协议

[root@tomcat1 conf]# vim server.xml 
 
注释: 
 
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --> 

2.修改通讯模式BIO修改为NIO提高并发处理能力

#去掉注释 
 
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 

3.启用外部连接池

#去掉注释并修改maxThreads: 
 
<!-- 
 
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
 
maxThreads="300" minSpareThreads="4"/> 
 
--> 
 
#去掉注释并修改protocol: 
 
<Connector executor="tomcatThreadPool" 
 
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 
 
connectionTimeout="20000" 
 
redirectPort="8443" /> 
 
#删除俩参数: 
 
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"/> (这是删除后的) 
 
# <Connector executor="tomcatThreadPool"下面添加: 
 
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 
 
maxThreads="1000" 
 
minSpareThreads="100" 
 
maxSpareThreads="200" 
 
acceptCount="1000" 
 
disableUploadTimeout="true" 
 
connectionTimeout="20000" 
 
URIEncoding="UTF-8" 
 
enableLookups="false" 
 
compression="on" 
 
compressionMinSize="2048" 
 
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png" 
 
redirectPort="8443" /> 

4.JVM调优生产配置

编辑catalina.sh配置文件 
 
[root@tomcat1 ~]# vim /usr/local/tomcat8/bin/catalina.sh 
 
# OS specific support. $var _must_ be set to either true or false.下面添加 
 
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParallelGCThreads=8 -XX:CMSInitiatingOccupancyFraction=80 -XX: 
+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-PrintGC -XX:-PrintGCDetails -XX:-PrintGCTimeStamps -Xloggc:../logs/gc.log" 
 
参数 
 
描述 
 
-Xms 
 
堆内存初始大小,单位m、g 
 
-Xmx 
 
堆内存最大允许大小,一般不要大于物理内存的80% 
 
-XX:PermSize 
 
非堆内存初始大小,一般应用设置初始化200m,最大1024m就够了 
 
-XX:MaxPermSize 
 
非堆内存最大允许大小 
 
-XX:+UseParallelGCThreads=8 
 
并行收集器线程数,同时有多少个线程进行垃圾回收,一般与CPU数量相等 
 
-XX:+UseParallelOldGC 
 
指定老年代为并行收集 
 
-XX:+UseConcMarkSweepGC 
 
CMS收集器(并发收集器) 
 
-XX:+UseCMSCompactAtFullCollection 
 
开启内存空间压缩和整理,防止过多内存碎片 

5.生产配置实例

#server.xml配置文件下: 
 
[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml 
 
# <Connector executor="tomcatThreadPool"下面添加: 
 
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" 
 
maxThreads="1000" 
 
minSpareThreads="100" 
 
maxSpareThreads="200" 
 
acceptCount="1000" 
 
disableUploadTimeout="true" 
 
connectionTimeout="20000" 
 
URIEncoding="UTF-8" 
 
enableLookups="false" 
 
compression="on" 
 
compressionMinSize="2048" 
 
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png" 
 
redirectPort="8443" /> 
 
#参数说明: 
 
org.apache.coyote.http11.Http11NioProtocol:调整工作模式为Nio 
 
maxThreads:最大线程数,默认150。增大值避免队列请求过多,导致响应缓慢。 
 
minSpareThreads:最小空闲线程数。 
 
maxSpareThreads:最大空闲线程数,如果超过这个值,会关闭无用的线程。 
 
acceptCount:当处理请求超过此值时,将后来请求放到队列中等待。 
 
disableUploadTimeout:禁用上传超时时间 
 
connectionTimeout:连接超时,单位毫秒,0代表不限制 
 
URIEncoding:URI地址编码使用UTF-8 
 
enableLookups:关闭dns解析,提高响应时间 
 
compression:启用压缩功能 
 
compressionMinSize:最小压缩大小,单位Byte 
 
compressableMimeType:压缩的文件类型 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Artificial Intelligence

Artificial Intelligence

Stuart Russell、Peter Norvig / Pearson / 2009-12-11 / USD 195.00

The long-anticipated revision of this #1 selling book offers the most comprehensive, state of the art introduction to the theory and practice of artificial intelligence for modern applications. Intell......一起来看看 《Artificial Intelligence》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器