tomcat相关实验

1.实现LNT

同主机实现

1、安装并启动tomcat
1)OpenJDK的安装yum install java-1.8.0-openjdk-devel.x86_64 确定JDK是否安装可以使用如下命令java -version    ##可以看到版本,说明安装成功
2)tomcat安装yum install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webappsservice tomcat startss -ntl 监听的端口有三个:8080为http协议的接口,8009为ajp协议的接口,8005为管理接口
2、安装nginx并配置
    vim /etc/nginx/nginx.conf在server段增加如下内容root     /usr/local/tomcat/webapps/ROOT;   ##表示访问静态文件就访问nginx的这个目录,此目录是tomcat默认根目录。index index.jsp;location ~* \.(jsp|do)$ {                        ##访问的是jsp或者do结尾的动态文件就调度到后端主机tomcatproxy_pass http://192.168.213.251:8080;}nginx -tservice nginx restart  http://192.168.213.251/    ##这里直接访问80端口就可以了看到tomcat默认主页面了

2.实现LAT

同主机(静态网页)

1、安装并启动tomcat
1)OpenJDK的安装yum install java-1.8.0-openjdk-devel.x86_64 确定JDK是否安装可以使用如下命令java -version    ##可以看到版本,说明安装成功
2)tomcat安装yum install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webappsservice tomcat startss -ntl 监听的端口有三个:8080为http协议的接口,8009为ajp协议的接口,8005为管理接口
2、安装httpd服务并确保有ajp_module和http_module
    httpd -M |grep "proxy"     ##查看模块是否已经加载,如果没有加载,要在配置文件中加载这些模块proxy_module (shared)proxy_ajp_module (shared)    ##表示反向代理时后端服务器是aip协议proxy_balancer_module (shared)proxy_connect_module (shared)proxy_express_module (shared)proxy_fcgi_module (shared)proxy_fdpass_module (shared)proxy_ftp_module (shared)proxy_http_module (shared)   ##表示反向代理时后端主机时http协议proxy_scgi_module (shared)proxy_wstunnel_module (shared)
3、与后端tomcat使用http协议连接时配置
    vim /etc/httpd/conf.d/tomcat.conf<virtualhost *:80>documentroot "/usr/share/tomcat/webapps/ROOT"<directory "usr/local/tomcat/webapps/ROOT">require all granted</directory>proxyrequests off     ##关闭正向代理,不加可以proxyvia on           proxypreservehost on    proxypass "/" "http://127.0.0.1:8080/"  proxypassreverse "/" "http://127.0.0.1:8080/"  </virtualhost>httpd -tsystemctl start httpd测试:http://172.18.21.107/
4、与后tomcat连接时使用的ajp协议时的配置
    vim /etc/httpd/conf.d/tomcat.conf<virtualhost *:80>documentroot "/usr/local/tomcat/webapps/ROOT"<directory "usr/local/tomcat/webapps/ROOT">require all granted</directory>proxyrequests offproxyvia onproxypreservehost onproxypass "/" "ajp://127.0.0.1:8009/"proxypassreverse "/" "ajp://127.0.0.1:8009/"</virtualhost>httpd -tsystemctl reload httpd
5、测试
    http://172.18.21.107/

3.实现lnmt的zrlog博客搭建

环境:
A主机:tomcat,nginx,ip地址为192.168.213.251
B主机:数据库,ip地址为192.168.213.253

1)在A上操作
    1、安装openjdkyum install java-1.8.0-openjdk-devel.x86_64 java -version   ---确认是否安装成功2、安装tomcatyum install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webappssystemctl start tomcathttp://192.168.213.251:8080   ##可以访问tomcat的默认网站3、将zrlog放到tomcat的根目录下mv  app/zrlog-1.7.1-release.war /usr/share/tomcat/webappssystemctl restart tomcatls   ##发现文件被自动解开docs      host-manager  manager  zrlog-1.7.1-releaseexamples  logs          ROOT     zrlog-1.7.1-release.war[root@centos7 webapps]#ln -s zrlog-1.7.1-release zrlog4、安装nginx并修改配置vim /etc/nginx/nginx.conf在server段增加如下内容root     /usr/local/tomcat/webapps;  ##表示访问静态文件就访问nginx的这个目录,此目录是tomcat默认根目录。index index.jsp;location / {      ##访问的是jsp或者do结尾的动态文件就调度到后端主机tomcat,此处为本地proxy_pass http://192.168.213.251:8080;}nginx -tservice nginx restarthttp://192.168.213.251/    ##这里直接访问80端口就可以了看到tomcat默认主页面了
2)在B上的设置
    安装数据库yum install mariadb-serversystemctl start mariadbmysqlcreate database zrlog;grant all on zrlog.* to zrloguser@'%' identified by "centos";
3)测试:
    登录网站http://192.168.213.251/zrlog/

4.实现nginx和httpd反代tomcat集群

环境
A:nginx和httpd:192.168.213.253
B:tomcat:192.168.213.251
C:tomcat:192.168.213.254

1》nginx反代
    1、在B和C上的设置mkdir -pv /usr/share/tomcat/webapps/myapp/WEB-INFvim /usr/share/tomcat/webapps/myapp/index.jsp<%@ page language="java" %><%@ page language="java" %><html><head><title>TomcatA</title></head><body><h1><font color="red">TomcatA.com</font></h1>   ##在C上将颜色改为green,Tomcat改为B<table align="centre" border="1"><tr><td>Session ID</td><% session.setAttribute("shen.com","shen.com"); %><td><%= session.getId() %></td></tr><tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr>   </table></body> </html> http://172.18.213.251:8080/myapp/http://172.18.213.254:8080/myapp/2、A上设置vim /etc/nginx/nginx.conf在http中配置upstream tomcatsrv { server 192.168.213.251:8080 ;server 192.168.213.254:8080 ;}server {listen 80 default_server;listen       [::]:80 default_server;index index.jsp ;root /usr/share/tomcat/webapps/app;location / {proxy_pass http://tomcatsrv ;}service nginx restarthttp://172.18.213.253/myapp/
2》httpd反代
    1、在B和C上的设置同上2、在调度器上的设置vim /etc/httpd/conf.d/tomcat.conf<proxy balancer://tomcatsrvs>                  ##定义一个后端服务器组BalancerMember http://192.168.213.251:8080 ##如果和后端服务器连接的协议为ajp协议,把http改为ajp并且把端口改为8009即可BalancerMember http://192.168.213.254:8080 ProxySet lbmethod=byrequests        </proxy>namevirtualhost *:80<VirtualHost *:80>documentroot /app<Directory /app>Require all granted</Directory>ProxyVia OnProxyRequests OffProxyPass / balancer://tomcatsrvs/ProxyPassReverse / balancer://tomcatsrvs/</VirtualHost>httpd -tservice httpd starthttp://172.18.213.253/app/httpd的负载集群功能具有健康状态检查功能可以把后端的一个tomcat停掉然后访问http://172.18.213.253/app/会发现不往关闭的tomcat主机调度了

5.实现httpd和nginx的会话粘性绑定

环境
A:nginx和httpd:192.168.213.253
B:tomcat:192.168.213.251
C:tomcat:192.168.213.254

1)httpd会话绑定
        在B和C上设置vim /etc/tomcat/server.xml <Engine name="Catalina" defaultHost="localhost" jvmroute="tomcatA">   ##在B上此行增加一个jvmroute="tomcatA,在C上此行增加jvmroute="tomcatB"systemctl restart tomcat在A上设置vim /etc/httpd/conf.d/tomcat.confHeader add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <proxy balancer://tomcatsrvs>BalancerMember http://172.18.213.251:8080 route=tomcatABalancerMember http://172.18.213.254:8080 route=tomcatBProxySet lbmethod=byrequestsProxySet stickysession=ROUTEID</Proxy>namevirtualhost *:80<VirtualHost *:80>documentroot /app<directory /app>Require all granted</directory>ProxyVia OnProxyRequests OffProxyPass / balancer://tomcatsrvs/ProxyPassReverse / balancer://tomcatsrvs/</VirtualHost>service httpd reloadhttp://172.18.213.253/app/

2)nginx会话绑定
    在B和C上操作同上在A上配置vim /etc/nginx/nginx.confupstream tomcatsrv { server 192.168.213.251:8080 ;server 192.168.213.254:8080 ;hash $request_uri consistent;}server {listen 80 default_server;listen [::]:80 default_server;index index.jsp ;root /usr/share/tomcat/webapps;location / {proxy_pass http://tomcatsrv ;}}service nginx restarthttp://172.18.213.253/app发现只能调度至第一次访问的后端服务器,实现会话绑定。

6.两个tomcat服务器保存有相同的会话

环境
A:nginx和httpd:192.168.213.253
B:tomcat:192.168.213.251
C:tomcat:192.168.213.254

1)在B和C上的设置
    访问tomcat的官方文档http://192.168.213.254:8080/docs/cluster-howto.html  ,Document---->Clustering将官方文档中的如下内容复制到tomcat配置文件的<engine>或<host>中,此实验放到Engine中vim /etc/tomcat/server.xml <Engine name="Catalina" defaultHost="localhost"><Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"><Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/><Channel className="org.apache.catalina.tribes.group.GroupChannel"><Membership className="org.apache.catalina.tribes.membership.McastService"address="228.74.74.74"  port="45564"frequency="500"        ##表示每0.5s发送一次心跳信息告诉其他成员自己还活着dropTime="3000"/>   ##表示3s没有发送信息就证明坏了<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="172.18.213.251"   ##另外一台主机修改为172.18.213.254port="4000"autoBind="100"selectorTimeout="5000"maxThreads="6"/>          <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/><Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/><Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/><ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>cp /etc/tomcat/web.xml /usr/share/tomcat/webapps/app/WEB-INF/   cd /usr/share/tomcat/webapps/app/WEB-INF/vim web.xml 在此文件内部没有注释的地方加如下内容<distributable/>   ##注意一定要在这个文件的内部,就在<web.app下加上就可systemctl restart tomcat注意:CentOS 7上的tomcat自带的文档中的配置示例有语法错误;没有加最后的/<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
2)在A的设置
        vim /etc/httpd/conf.d/tomcat.conf<proxy balancer://tomcatsrvs>BalancerMember http://172.18.213.251:8080 BalancerMember http://172.18.213.254:8080ProxySet lbmethod=byrequests</Proxy>namevirtualhost *:80<VirtualHost *:80>documentroot /app<directory /app>Require all granted</directory>ProxyVia OnProxyRequests OffProxyPass / balancer://tomcatsrvs/ProxyPassReverse / balancer://tomcatsrvs/</VirtualHost>service httpd reloadhttp://172.18.213.253/app/

6.实现session会话保持到memcache服务器

要想将会话保存至后端memcache中,并且每个memcache都保存相同的会话,需要一个管理项目memcached-session-manager,项目地址:https://github.com/magro/memcached-session-manager,找到SetupAndConfiguration wiki page.并点击进去。其中
在Add memcached-session-manager jars to tomcat处下载(根据所需进行下载)下载.jar文件至各tomcat的/usr/share/tomcat/lib/目录中,其中的${version}要换成你所需要的版本号,tc${6,7,8}要选与tomcat版本相同的版本号。memcached-session-manager-2.1.1.jarmemcached-session-manager-tc7-2.1.1.jar   ##要根据tomcat的版本,实验时是7版本,所以这里要下载tc7spymemcached-2.9.1.jar
在Add custom serializers to your webapp (optional)处下载(根据所需进行下载)这里下载的是kryo-serializer,有如下jar文件需要下载msm-kryo-serializer-2.1.1.jarkryo-serializers-0.42.jarkryo-4.0.1.jarminlog-1.3.0.jarreflectasm-1.11.3-shaded.jarreflectasm-1.11.3.jarasm-5.2.jarobjenesis-2.6.jar

实现过程如下

        1、在director上实现nginx或者httpd的反向代理至tomcat集群,本实验用的是httpdvim /etc/httpd/conf.d/tomcat.conf <proxy balancer://tomcatsrvs>BalancerMember http://172.18.213.251:8080BalancerMember http://172.18.213.254:8080ProxySet lbmethod=byrequests</Proxy>namevirtualhost *:80<VirtualHost *:80>documentroot /app<directory /app>Require all granted</directory>ProxyVia OnProxyRequests OffProxyPass / balancer://tomcatsrvs/ProxyPassReverse / balancer://tomcatsrvs/</VirtualHost>service httpd start2、在两个后端服务器上的设置安装tomcat和memcache并启动服务yum install memcached -ysystemctl start memcachedls /usr/share/tomcat/lib/          ##复制.jar文件到此目录vim /etc/tomcat/server.xml  ##将官方文档中的此段内容复制到tomcat的配置文件中<Context path="/app" docBase="/usr/share/tomcat/webapps/app" reloadable="true"><Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:172.18.213.254:11211,n2:172.18.213.254:11211"failoverNodes="n1"requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/></Context>systemctl restart tomcat3、测试安装客户端工具yum install -y libmemcached    ##不安装此软件包无法使用memdump等客户端工具http://172.18.213.253/app/      ##访问发现被调度到不同的tomcat主机,但会话是一样的memdump --server 172.18.21.107:11211     ##此命令可以查看到memcache中缓存的值systemctl stop memcached     ##关闭一台memcachedhttp://172.18.213.253/app/      ##继续访问发现会话仍然不变,说明会话在两台memcache中都缓存了

转载于:https://www.cnblogs.com/shenxm/p/7822854.html

tomcat相关实验相关推荐

  1. 关于partnerLinkType的相关实验

    文章仅供大家参考,所有评论, 错误报告, 其他信息以及批评, 请邮寄到 Jeffery.Lee AT gmail.com 或者访问我的个人blog同我交流( http://ibuddie.spaces ...

  2. 小功率电子镇流荧光灯相关实验

    ➤01 小型电子荧光灯 在博文 小功率荧光灯拆解分析 中对于一款电子镇流器激励的小型荧光灯进行了相关实验.现在手边有一颗荧光灯,基于该荧光灯初步进行相关的电子实验. ▲ 已经拆开的荧光灯泡 荧光灯的主 ...

  3. Tomcat相关面试题,看这篇就够了!保证能让面试官颤抖!

    Tomcat相关的面试题出场的几率并不高,正式因为如此,很多人忽略了对Tomcat相关技能的掌握,下面这一篇文章最早发布在知识星球,整理了Tomcat相关的系统架构,介绍了Server.Service ...

  4. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  5. JAVAWEB入门之IDEA与tomcat相关配置

    IDEA与tomcat相关配置 IDEA会为每一个tomcat部署的项目单独建立一份配置文件, 查看启动项目后的控制台的log:Using CATALINA_BASE:   "C:\User ...

  6. Tomcat相关总结

    Tomcat相关总结 1.Tomcat中的manager用户配置 手动安装的tomcat没有生成admin跟manager用户,要进入tomcat的admin管理界面必须自己手动添加.打开tomcat ...

  7. 秋水仙碱与牛血清白蛋白 (BSA)偶联物(相关实验)

    秋水仙碱与牛血清白蛋白 (BSA)偶联物(相关实验) 提供牛血清白蛋白BSA.鸡卵清白蛋白OVA.人血清蛋白HSA等蛋白偶联芍药苷.氟伐他汀.阿西美辛.利凡诺.氟尼辛.氨丙啉.卡托普利.阿米舒必利.金 ...

  8. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...

  9. STM32学习心得十八:通用定时器基本原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容: 1) 三种定时器分类及区别: 2) 通用定时器特点: 3) 通用定时器工作过程: 4) 实验一:定时器中断实验补充知识及部代码解读: 6) 实验二:定时器PWM输 ...

最新文章

  1. Python字符串方法:字符串拼接、截取、转数字
  2. 比特币官网管理者因支持BCH被建议移交权限
  3. what does boston dynamics do?
  4. 12月9日 php环境的安装和基本知识的学习
  5. codeforces1456 D. XOR-gun
  6. Bzoj 4371: [IOI2015]sorting排序 二分
  7. 数据分析学习笔记1---zip(),numpy.where
  8. 机器视觉开源处理库汇总-介绍n款计算机视觉库/人脸识别开源库/软件 -几种图像处理类库的比较-视觉相关网站...
  9. @Autowired与@Resource的差别
  10. 洛谷OJ P3368 【模板】树状数组 2
  11. 【服务器】戴尔PowerEdgeR710服务器升级BIOS
  12. 用Python全自动播放尔雅网课
  13. 向量的各种积,都有哪些,分别如何表示
  14. win10设置计算机关机时间,教你windows10电脑怎么设置定时关机
  15. Latex中PDF文档目录乱码解决方案
  16. 机器学习.周志华《15 规则学习 》
  17. android camera慢动作,慢动作相机app下载-慢动作相机软件 安卓版v1.1-PC6安卓网
  18. MATLAB | sRGB图像的灰度转换算法
  19. 宣化科技职业学院计算机网络技术,职业技术学校专业建设-宣化科技职业技术学院-计算机网络技术.doc...
  20. 哈啰出行高质量故障复盘法:“3+5+3”(附模板)

热门文章

  1. ASP.Net数据库连接字符串
  2. 亚马逊招聘实习生,ML、CV、机器人和语音处理领域
  3. CVPR 2021 论文分享会预告
  4. 黑科技DeepFake检测方法:利用心跳做信号,还能「揪出」造假模型
  5. 视频隐身衣:物体移除、去水印、后期处理毫无痕迹
  6. 今日上新:两个图像领域的现金奖励实时竞赛
  7. 阿里达摩院提出新型优化方法,一行代码即可替换现有优化器
  8. 北大师兄告诉你,怎样顺利完成自己的博士生涯
  9. ios加载本地html懒加载图片方案,IOS开发中加载大量网络图片优化方法
  10. 梯度下降法快速教程 | 第一章:Python简易实现以及对学习率的探讨