基于Apache和Tomcat的负载均衡实验报告

说明:本实验为浙江科技大学软件工程本科专业课程《软件体系结构》的实验报告。

五、总结

  1. 负载均衡的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同的硬件构成的计算机。负载均衡即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
  2. Apache是一款Web服务器软件,它可以运行在多种计算机平台上。Apache官网只提供源代码下载,对于Windows用户可以下载民间的二进制包。
  3. byrequests是Apache支持的一种负载均衡策略:轮询,将HTTP请求数平均分配给代理。

一、实验内容或题目

  1. 选定自己开发的应用系统;
  2. Tomcat环境下的负载均衡配置过程;
  3. 将自己的应用部署在步骤2中的环境中。
  4. 测试用户请求。

实验原理图如下。

说明:<IP地址>:<端口号>为计算机网络应用层的服务入口点,不同的服务入口点可视为不同的系统。在本实验中,由于硬件资源限制,<IP地址>统一取localhost,Apache和2个Tomcat Server运行在不同端口上。

二、实验目的与要求

实验目的:掌握Tomcat环境下负载均衡的配置方法。

实验要求:详细描述负载均衡配置过程中的各个步骤。

三、实验步骤

  1. 下载安装运行Apache

    (1)下载httpd-2.4.48-o111k-x86-vc15.zip,解压至某目录。

    (2)打开conf/httpd.conf文件,找到含有Define SRVROOT的一行,将其值修改为Apache所在路径。

    (3)进入bin目录。以管理员身份打开cmd,执行命令httpd -k install。

    (4)打开服务控制台,启动服务Apache2.4。

    (5)浏览器访问http://localhost/进行测试。

  2. 修改conf/httpd.conf

    (1)删除以下行开头的#(取消注释)。

    LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    Include conf/extra/httpd-vhosts.conf

(2)在文件中找到DirectoryIndex index.html,在其末尾添加index.jsp(注意空格)。

(3)在文件末尾添加以下配置。

xml 复制代码
ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8045/ loadfactor=1 route=jvm1
BalancerMember ajp://localhost:8042/ loadfactor=1 route=jvm2
</Proxy>
  1. 在conf/extra/httpd-vhosts.conf的末尾添加以下配置
xml 复制代码
<VirtualHost *:80>
    ServerName 127.0.0.1
    ServerAlias localhost
    ProxyPass / balancer://mycluster/ stickysession=jsessionid nofailover=On
    ProxyPassReverse / balancer://mycluster/
    ErrorLog "logs/lbtest-error.log"
    CustomLog "logs/lbtest-access.log" common 
</VirtualHost>
  1. 下载安装运行Tomcat
    (1)下载apache-tomcat-9.0.46-windows-x86.zip,解压到两个不同的目录。
    (2)修改两个Tomcat的conf/server.xml。
元素 属性名 Tomcat A属性值 Tomcat B属性值
<Server...> port 8040 8043
<Connector protocol="HTTP/1.1"...> port 8041 8044
<Connector protocol="AJP/1.3"...> port 8042 8045
<Engine...> jvmRoute jvm1 jvm2

<Connector protocol="AJP/1.3"...>的完整形式:<Connector protocol="AJP/1.3" port="XXXX" redirectPort="8443" secretRequired=""/>。修改port是为了避免冲突。注意:两个Tomcat的AJP port、jvmRoute要与Apache中的配置对应。

(3)部署应用:将应用复制到两个Tomcat的webapp/sy1中,修改其中一个Tomcat的webapp/sy1/index.jsp。

(4)运行bin/startup.bat,启动服务器。打开浏览器,分别访问http://127.0.0.1:8041/sy1/index.jsp和http://127.0.0.1:8044/sy1/index.jsp。

  1. 测试负载均衡
    浏览器访问http://127.0.0.1:8041/sy1/index.jsp。

四、实验结果

第一次访问

第二次访问

结论:负载均衡配置成功。(以上结果来自单页面JSP应用,也可以使用其他技术实现)

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼5 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘5 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥5 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝5 天前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea5 天前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链