第十九周作业

1、haproxy https实现

2、总结tomcat的核心组件以及根目录结构

2.1核心组件示意图

在这里插入图片描述

名称说明
Server服务器,tomcat运行的进程实例,一个Server中可以有多个Service,但通常就一个
Service服务,用来组织Engine和Conntor的对应关系,一个service中只有一个Engine
Connector连接器,负责客户端的HTTP(S)、AJP等协议连接。用来处理来自客户端的不同的连接请求或响应。一个Connector只属于某一个Engine。
Engine引擎,用来响应并处理用户请求。一个Engine上可以绑定多个Connector
Host虚拟主机,可以实现多虚拟主机,例如使用不同的主机头区分
Context应用的上下文,配置特定url路径映射和目录的映射关系:url => directory

2.2根目录结构

tomcat的默认根目录:/usr/local/tomcat/webapps/
在Tomcat中部署主站应用程序和其他应用程序,和之前WEB服务程序不同。

[22:47:21 root@CS8-VM8-10 webapps][#pwd 
/usr/local/tomcat/webapps
[22:47:23 root@CS8-VM8-10 webapps][#ll
total 8
drwxr-x---  3 tomcat tomcat   55 Aug 18 17:30 app2
-rw-r--r--  1 root   root    879 Aug 18 17:30 app2.war
drwxr-x--- 15 tomcat tomcat 4096 Aug 17 17:51 docs
drwxr-x---  7 tomcat tomcat   99 Aug 17 17:51 examples
drwxr-x---  6 tomcat tomcat   79 Aug 17 17:51 host-manager
drwxr-x---  6 tomcat tomcat  114 Aug 17 17:51 manager
drwxr-x---  3 tomcat tomcat  223 Aug 18 16:56 ROOT      #网站的默认根目录

自定义一个Web应用(app2)与/usr/local/tomcat/webapps/目录下。

所以,网站链接的对应关系:

网站默认根目录:
/usr/local/tomcat/webapps/ROOT/

访问app2:
/usr/local/tomcat/webapps/app2


由此可知:网站默认的根目录与自定义的Web应用(app2)是属于同级关系。而其他Web应用(nginx)是子父目录的关系。

如果/usr/local/tomcat/webapps/ROOT/app2与/usr/local/tomcat/webapps/app2同时存在,则自定义的优先级要高,即/usr/local/tomcat/webapps/优先生效。

2.3补充

/usr/local/tomcat/webapps下面的每个目录对应的WebApp,可能存在一下目录:
主页配置:默认按以下顺序查找主页文件 index.html,index.htm、index.jsp  
(主配置文件中的定义:/usr/local/tomcat/conf/web.xml ,也可以自行定义:/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml,参照主配置文件的定义修改即可)
WEB-INF/:当前目录WebApp的私有资源路径,通常存储当前应用使用的web.xml和context.xml配置文件。
META-INF/:类似于WEB-INF,也是私有资源的配置信息,和WEB-INF/目录一样浏览器无法访问。
classes/:类文件,当前webapp需要的类。
lib/:当前应用依赖的jar包。

3、tomcat实现多虚拟主机:基于域名访问

3.1构建相关网页

[21:20:00 root@CS8-VM8-10 ~][#mkdir /data/website{1,2,3}
[21:23:05 root@CS8-VM8-10 ~][#mkdir /data/website{1,2,3}/ROOT -pv 
mkdir: created directory '/data/website1/ROOT'
mkdir: created directory '/data/website2/ROOT'
mkdir: created directory '/data/website3/ROOT'

[21:23:41 root@CS8-VM8-10 ~][#echo /data/website1/ROOT/index.html www.aaa.com  >> /data/website1/ROOT/index.html
[21:24:52 root@CS8-VM8-10 ~][#cat /data/website1/ROOT/index.html 
/data/website1/ROOT/index.html www.aaa.com
[21:25:09 root@CS8-VM8-10 ~][#cp /data/website1/ROOT/index.html /data/website2/ROOT/index.html
[21:25:47 root@CS8-VM8-10 ~][#cp /data/website1/ROOT/index.html /data/website3/ROOT/index.html
[21:25:53 root@CS8-VM8-10 ~][#vim /data/website2/ROOT/index.html 
/data/website2/ROOT/index.html www.bbb.com
[21:26:33 root@CS8-VM8-10 ~][#vim /data/website3/ROOT/index.html 
/data/website3/ROOT/index.html www.ccc.com

3.2修改配置文件:/usr/local/tomcat/conf/server.xml

多虚拟主机:参照该文件中的<Host  ... >  ...    </Host>
增加的内容如下:
       </Host>
 
       <Host name="www.aaa.com"  appBase="/data/website1/"
         unpackWARs="true" autoDeploy="true">
       </Host>

       <Host name="www.bbb.com"  appBase="/data/website2/"
          unpackWARs="true" autoDeploy="true">
       </Host>                                                                                                            
 
       <Host name="www.ccc.com"  appBase="/data/website3/"
          unpackWARs="true" autoDeploy="true">
       </Host>

重启服务:
[21:33:18 root@CS8-VM8-10 tomcat][#systemctl restart tomcat.service 
[21:43:33 root@CS8-VM8-10 tomcat][#pwd
/usr/local/tomcat

3.3修改物理机的hosts文件(略)

3.4浏览器测试访问

在这里插入图片描述

在这里插入图片描述

4、nginx实现后端tomcat的负载均衡调度

4.1 架构

client:10.0.8.7     
nginx:10.0.8.8   (代理服务器)   
tomcat1:10.0.8.17   
tomcat2:10.0.8.18

4.2 客户端做好名称解析

client:10.0.8.7

vim   /etc/hosts
#增加一下内容:
10.0.8.8   www.tomcat.org

4.2 代理服务器的配置

nginx :10.0.8.8

做好名称解析:vim   /etc/hosts
#增加一下内容:
10.0.8.17    www.tomcat1.org
10.0.8.18    www.tomcat2.org 

 2022-09-13 09:18:05 yum  install -y nginx
 2022-09-13 09:18:43 hostnamectl set-hostname nginx
 2022-09-13 09:19:17 vim /etc/nginx/nginx.conf
 #在http语句块中增加以下内容:
    upstream tomcat {
    #ip_hash;        #源地址hash
    #hash $cookie_JSESSIONID;  #基于cookie的hash
    server 10.0.8.17:8080;
    server 10.0.8.18:8080;   
   }
#在server语句块中增加一下内容:
  location  /  {
	proxy_pass   http://tomcat;   #tomcat该名称和upstream  tomcat中的tomcat 一致

}


 2022-09-13 09:44:41 nginx -t
 2022-09-13 09:46:27 systemctl start nginx

4.3 后端服务器tomcat1的设置

tomcat1:  安装好tomcat相对应的环境(略)
  120  2022-09-13 09:35:37 cd /usr/local/tomcat/
  121  2022-09-13 09:35:38 ll
  122  2022-09-13 09:35:43 vim conf/server.xml 
  #修改的内容:把默认(localhost)主机改为www.tomcat1.org
 <Engine name="Catalina" defaultHost="www.tomcat1.org">

#增加该主机的相关信息,参照主机的格式
  <Host name="www.tomcat1.org"  appBase="/data/webapps"    
                       uppackWAR="true"  autoDeploy="true">
</Host>

  123  2022-09-13 09:40:15 systemctl restart tomcat.service 
  124  2022-09-13 09:40:21 systemctl status tomcat

 
准备负载均衡规划的测试用的jsp文件:
 #项目路径配置
mkdir -pv /data/webapps/ROOT
#编写测试jsp文件,内容在下面
vim /data/webapps/ROOT/index.jsp
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>tomcat test</title>
</head>
<body>
<div>On <%=request.getServerName() %></div>
<div><%=request.getLocalAddr() + ":" + request.getLocalPort() %></div>
<div>SessionID = <span style="color:blue"><%=session.getId() %></span></div>
<%=new Date()%>
</body>
</html>
#设置权限
chown -R tomcat.tomcat /data/webapps/ 


4.4 tomcat2的设置与tomcat1的设置一样(略)

4.5 客户端测试

在这里插入图片描述

5、简述memcached的工作原理

参考他人文章:

https://blog.csdn.net/weixin_51867896/article/details/124416494?

5.1 session共享服务器

  1. msm介绍
  2. 两种工作模式(1.sticky 2.non-sticky)

msm介绍:

msm(memcache  session  manager) 提供将tomcat的session保持到memcache或者
redis程序,可实现高可用

sticky(黏性,粘性)模式工作原理:
在这里插入图片描述

 (1)t1和m1(t2和m2)可以部署在同一台服务器中;
 (2)当新用户发请求到t1时,t1生成的session返回给用户的同时,也会发给m2当备份。
即,t1的session 为主session,m2的session为备份session。使用memcache 相当于备份了session。
 (3)如果t1发现m2失败无法备份session到m2,则将session备份存放在m1中

non-sticky(无黏性)模式工作原理:

(1)前端为tomcat,后端为memcache,两者无关联(黏性)关系。
(2)tomcat的session为中转session,对每一个sessionID随机选中后端的memcache节点m1或者m2为主session,
而另外一个memcache节点m2或者m1为备份节点。产生新的session会发送给主、备memcache,并且会清楚本地session。
(3)后端的两个memcache服务器对于一个session来说一个为主,一个为备,
但对于所有session信息来说每个memcache即同时为主备。
如果m1下线,m2则转正。m1再次上线,m2仍然是主session储存节点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值