基于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.jsphttp://127.0.0.1:8044/sy1/index.jsp

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

四、实验结果

第一次访问

第二次访问

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

相关推荐
朴马丁19 分钟前
从制造到智造:PLM如何赋能企业研发创新
大数据·运维·人工智能·食品行业·流程行业plm·化工新材料行业·新能源材料行业
爱小黄36 分钟前
使用docker搭建集群-使用 Docker 搭建 KingbaseES 集群
运维·docker·容器
zhougl9961 小时前
Gateway 和 Nginx 路由区别
运维·nginx·gateway
听风3472 小时前
Arch Linux 软件安装完全指南
linux·运维·archlinux·pacman
不积跬步无以至千里2 小时前
记录一次绕过负载均衡直接测试多个服务节点性能的工作
负载均衡·性能测试·loadrunner
沉迷学习 日益消瘦3 小时前
10-Gateway API
运维·kubernetes·gateway
智购科技智能售货柜3 小时前
无人售货机连不上服务器?MQTT 频繁掉线排查全流程~YH
运维·服务器
心念枕惊3 小时前
Docker--Docker Swarm集群
运维·docker·容器
難釋懷4 小时前
Nginx-proxy缓存断点续传缓存 range
运维·nginx·缓存
井川廊咏4 小时前
【总集篇】Linux | 如何创建一个 home 目录在 /data 磁盘的 sudo 用户(补档)
linux·运维·服务器