基于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应用,也可以使用其他技术实现)

相关推荐
Jtti2 小时前
新加坡服务器连接速度变慢应该做哪些检查
运维·服务器
huangjiazhi_2 小时前
在Linux上无法访问usb视频设备
linux·运维·服务器
xixingzhe22 小时前
jenkins脚本触发部署
运维·jenkins
TTGGGFF2 小时前
云端服务器使用指南:如何跨机传输较大文件(通过windows自带工具远程桌面连接 非常方便)
运维·服务器
躲在云朵里`3 小时前
ElasticSearch复习指南:从零搭建一个商品搜索案例
运维·jenkins
yyy0002003 小时前
压缩和归档 文件传输
linux·运维·服务器
STCNXPARM3 小时前
深度剖析Linux内核无线子系统架构
linux·运维·系统架构·wifi·无线子系统
m0_694845575 小时前
教你使用服务器如何搭建数据库
linux·运维·服务器·数据库·云计算
空灵之海6 小时前
Ubuntu Server 22.04.5系统安装教程
linux·运维·ubuntu
arbboter6 小时前
【自动化】深入浅出UIAutomationClient:C#桌面自动化实战指南
运维·c#·自动化·inspect·uiautomation·uia·桌面自动化