1 tomcat介绍
Apache Tomcat,通常简称为Tomcat,是一个开源的Web应用服务器。它是一个用Java编写的轻量级应用,实现了Java Servlet和JavaServer Pages(JSP)规范。自1999年首次发布以来,Tomcat已成为开发和部署Java Web应用程序的流行选择。
Tomcat作为一个成熟、稳定且广泛使用的Servlet容器和Web服务器,是Java Web应用部署的首选环境。它结合了轻量级的优势和企业级应用所需的功能,适用于从小型项目到大型企业级应用。随着Web技术的发展,Tomcat持续在性能优化、安全性和易用性方面进行创新,以满足日益增长的应用需求。
1.1 核心特性
-
Servlet容器: Tomcat最初被设计为一个纯粹的Servlet容器。它提供了一个运行Servlet的平台,这些Servlet可以响应客户端请求并生成动态Web内容。
-
JSP支持: Tomcat支持JSP,允许开发者编写嵌入Java代码的HTML页面,用于生成动态Web内容。
-
轻量级和灵活性: Tomcat被设计为轻量级和模块化的Web服务器,这使得它易于配置和扩展。
-
高性能: 虽然是轻量级的,但Tomcat仍然提供了良好的性能,特别是在处理动态内容时。
-
安全性: 提供基本的安全特性,如SSL/TLS支持和用户身份验证。
-
跨平台: 作为一个Java应用,Tomcat可以在任何安装了Java虚拟机的平台上运行。
1.2 架构和组件
-
连接器(Connector): 处理客户端到服务器的请求和响应。Tomcat包括多种类型的Connector,支持不同的协议,如HTTP、HTTPS和AJP。
-
引擎(Engine): 处理Servlet的请求。每个引擎可以包含多个虚拟主机。
-
虚拟主机(Host): 表示一个网络域,可以部署多个Web应用。
-
上下文(Context): 表示一个Web应用程序,是部署在Tomcat上的主要组件。
-
阀(Valve)和过滤器(Filter): 提供了一种机制,用于在请求处理链中插入自定义的处理逻辑。
1.3 使用和部署
-
Web应用部署: Tomcat允许将Web应用打包为WAR(Web Application Archive)文件进行部署。
-
配置管理: Tomcat的配置主要通过XML文件进行,如server.xml、web.xml和context.xml等。
-
日志记录: 提供了灵活的日志记录机制,便于监控和故障排查。
-
集成开发环境(IDE)支持: Tomcat可以集成到各种IDE中,如Eclipse和IntelliJ IDEA,以便于开发和调试。
1.4 性能调优
-
连接器优化: 配置Connector以提高请求处理的性能,如调整线程池大小和连接超时设置。
-
JVM调优: 调整Java虚拟机(JVM)的参数,以优化内存使用和垃圾回收。
-
负载均衡和扩展: 使用负载均衡器和多个Tomcat实例来扩展应用,提高可靠性和吞吐量。
1.5 安全性和管理
-
安全配置: 配置安全性相关的设置,如禁用不必要的服务和接口,配置SSL/TLS。
-
用户认证和授权: Tomcat提供了基本的用户认证和授权机制,可以通过realm进行配置。
-
监控和管理工具: 提供了管理应用程序的工具和界面,如Tomcat Manager和JMX支持。
1.6 社区和生态系统
-
活跃的社区: Tomcat拥有一个活跃的社区,为用户提供支持和资源。
-
插件和扩展: 社区贡献了大量的扩展和插件,用于增强Tomcat的功能。
-
兼容性和集成: Tomcat与多种技术和框架兼容,如Spring框架和各种数据库。
2 tomcat安装
2.1 从tomcat官网下载gz包
sudo wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.11/bin/apache-tomcat-8.5.11.tar.gz
2.2 解压gz包
sudo tar -xvf apache-tomcat-8.5.11.tar.gz
2.3 启动tomcat服务器
sudo cd apache-tomcat-8.5.11/
sudo bin/startup.sh
2.4 设置远程manager访问权限
sudo vi webapps/manager/META-INF/context.xml
将context环境变量改变为如下的值:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="*" />
</Context>
添加访问权限用户
sudo vi conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="123456" roles="manager-gui"/>
2.5 tomcat只监听tcp6端口的解决办法
在bin目录下创建setenv.sh
文件内容中添加:JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "
设置setevn的可执行权限:chmod +x setenv.sh
在catalina.sh文件开始的位置调用setenv.sh: vim catalina.sh
source /{path}/apache-tomcat-8.5.11/bin/setenv.sh //path根据实际路径进行设置
重启tomcat
通过netstat -ntlp查看端口已经启用