企业级WEB应用服务器TOMCAT

企业级WEB应用服务器TOMCAT

tomcat的功能介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器

在中小型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和JSP容器

背景相关
起始于SUN 公司的一个Servlet的参考实现项目 Java Web Server,开发者是 James Duncan Davidson,

在1999年,将项目贡献给了apache软件基金会(ASF),和ASF现有的项目 JServ 合并,并开源成为顶级项目

部署Tomcat

安装java环境
安装并启动tomcat

# 安装java环境
[root@node1 tomcat]# yum install java-1.8.0-openjdk.x86_64 -y
# 安装并启动tomcat
[root@node2 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/
[root@node2 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat
[root@node2 ~]# /usr/local/tomcat/bin/startup.sh

在这里插入图片描述
访问Tomcat
在这里插入图片描述

编辑启动文件

要有主配置文件

[root@node2 ~]# vim /usr/local/tomcat/conf/tomcat.conf

在这里插入图片描述
再生成启动文件

[root@node2 ~]# vim /usr/local/tomcat/conf/tomcat.conf
[root@node2 ~]# useradd -s /sbin/nologin -M tomcat
[root@node2 ~]# chown -R tomcat.tomcat /usr/local/tomcat/
[root@node2 ~]# vim /lib/systemd/system/tomcat.service

[root@node2 ~]# systemctl daemon-reload
[root@node2 ~]# systemctl enable --now tomcat

在这里插入图片描述
启动成功
在这里插入图片描述
第二台机器操作以致

结合反向代理实现tomcat部署

常见部署方式:
在这里插入图片描述

  1. standalone模式,Tomcat单独运行,直接接受用户的请求,不推荐。
  2. 反向代理,单机运行,提供了一个Nginx作为反向代理,可以做到静态由nginx提供响应,动态jsp代理给Tomcat
  • LNMT:Linux + Nginx + MySQL + Tomcat
  • LAMT:Linux + Apache(Httpd)+ MySQL + Tomcat
  1. 前置一台Nginx,给多台Tomcat实例做反向代理和负载均衡调度,Tomcat上部署的纯动态页面更适合
  • LNMT:Linux + Nginx + MySQL + Tomcat
  1. 多级代理
    LNNMT:Linux + Nginx + Nginx + MySQL + Tomcat
[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@Nginx ~]# systemctl restart nginx.service

在这里插入图片描述
浏览器测试:

多个浏览器执行都是同一个tomcat
在这里插入图片描述
在这里插入图片描述

test.jsp文件编写如下:

[root@node2 ROOT]# vim test.jsp

在这里插入图片描述

tomcat中实现负载均衡

算法规则使用cookie hash就能实现负载均衡,因为cookie值是浏览器页面由tomcat提供
在这里插入图片描述
因此,nginx下配置:

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf
[root@Nginx ~]# systemctl restart nginx.service

在这里插入图片描述

不同的浏览器测试:
在这里插入图片描述
在这里插入图片描述

当tomcat下线的时候,数据会因为转换服务而丢失:

运行正常下的数据在这里插入图片描述
当20上的tomcat下线后在这里插入图片描述
再次提交数据,则以前数据丢失在这里插入图片描述

为了解决数据丢失这个问题,引入了session 共享服务器

session 共享服务器

在这里插入图片描述
msm(memcached session manager)提供将Tomcat的session保持到memcached可以实现高可用。

项目早期托管在google code,目前在Github

session安装

参考链接: https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
将spymemcached.jar、memcached-session-manage、kyro相关的jar文件都放到Tomcat的lib目录中,这个目录是 $CATALINA_HOME/lib/ ,对应本次安装就是/usr/local/tomcat/lib。

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
  • t1和m1部署可以在一台主机上,t2和m2部署也可以在同一台。
  • 当新用户发请求到Tomcat1时, Tomcat1生成session返回给用户的同时,也会同时发给memcached2备份。即Tomcat1 session为主session,memcached2 session为备用session,使用memcached相当于备份了一份Session
  • 如果Tomcat1发现memcached2 失败,无法备份Session到memcached2,则将Sessoin备份存放在memcached1中

下载jar包

下载相关jar包,参考下面官方说明的下载链接
https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration
官方说明的下载链接

修改tomcat配置

[root@Nginx ~]# vim /usr/local/tomcat/conf/context.xml
    <Manager pathname="" />
    -->
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="m1:172.25.250.100:11211,m2:172.25.250.200:11211"
      failoverNodes="m1"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>
 
[root@web2 lib]# vim /usr/local/tomcat/conf/context.xml
    <Manager pathname="" />
    -->
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="m1:172.25.250.100:11211,m2:172.25.250.200:11211"
      failoverNodes="m2"
      requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
      transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
    />
</Context>

修改nginx配置

[root@node1 ~]# vim /usr/local/nginx/conf.d/tomcat.conf 
upstream tomcat {
  #ip_bash;
  hash $cookie_JSESSIONID;
  server 172.25.250.100:8080;
  server 172.25.250.200:8080;
}
server {
  listen 80;
  server_name www.timingluo.org;
  location ~ \.jsp$ {
  proxy_pass http://tomcat;
  }
}
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值