Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
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最新版本为10.0.23。
运行环境提供
与 Java 生态系统的集成
轻量级与高效性
易于部署和管理
安全性
开源免费
强大的社区支持
比较项目 | Tomcat | Apache |
---|---|---|
主要用途 | Java Web 应用服务器 | 通用 Web 服务器 |
支持的编程语言 | 主要支持 Java | 支持多种编程语言如 PHP、Perl 等 |
性能特点 | 轻量级,处理 Java 应用效率高,启动速度快 | 稳定、成熟,能处理高并发请求,性能强大 |
配置难度 | 相对较容易 | 配置相对复杂一些 |
可扩展性 | 与众多 Java 框架集成良好,扩展性强 | 可通过各种模块进行扩展 |
安全性 | 提供一定的安全保障,如支持 HTTPS | 可配置多种安全策略,安全性较高 |
开源性 | 开源免费 | 开源免费 |
社区支持 | 有庞大的 Java 开发社区支持 | 拥有广泛的用户和开发者社区支持 |
Tomcat
安装红帽7的主机,环境搭建可参考之前的博客文章。
官网连接:Apache Tomcat® - Welcome!https://tomcat.apache.org/
实验wget命令下载到虚拟机:
java
环境
[root@web1 ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/ [root@web1 ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat [root@web1 ~]#/usr/local/tomcat/bin/startup.sh
tomcat
的启动文件相同。
[root@web1 ~]# vim /usr/local/tomcat/conf/tomcat.conf JAVA_HOME=/etc/alternatives/jre_openjdk
[root@web1 ~]# useradd -s /sbin/nologin -M tomcat [[root@web1 ~]# chown -R tomcat.tomcat /usr/local/tomcat/ [root@web1 ~]# vim /lib/systemd/system/tomcat.service [Unit] Description=Tomcat \#After=syslog.target network.target remote-fs.target nss-lookup.target After=syslog.target network.target [Service] Type=forking EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh PrivateTmp=true User=tomcat Group=tomcat [Install] WantedBy=multi-user.target [root@web1 ~]# systemctl daemon-reload [root@web1 ~]# systemctl enable --now tomcat
web2:172.25.254.20 同样操作,安装和生成启动文件,测试如下:
nginx
实现反向代理nginx的搭建参考之前的nginx博客。
相同。
test.jsp
文件,负责到指定目录web2同样操作。
nginx
子配置文件编写
相同。
4.5Memcached
实验相同。
memcached
的安装与启动[root@web1 ~]# vim /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 0.0.0.0,::1"
web2同样操作
在两台tomcat主机里传上如下插件,将它们复制到/usr/local/tomcat/bin/目录里
kryo-3.0.3.jar asm-5.2.jar objenesis-2.6.jar reflectasm-1.11.9.jar minlog-1.3.1.jar kryo-serializers-0.45.jar msm-kryo-serializer-2.3.2.jar memcached-session-manager-tc9-2.3.2.jar spymemcached-2.12.3.jar memcached-session-manager-2.3.2.jar
现在在20主机上,我们添加两个数据,test1和test2,然后关闭20主机上tomcat服务,模拟服务器下线,看是否会切到10主机且数据不丢失:
恢复后,在添加一个4数据查看:
下一篇:Elm语言服务器安装与使用指南