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

相关推荐
weixin_307779134 小时前
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
运维·数据仓库·clickhouse
bubiyoushang8884 小时前
Windows11 WSL2 Ubuntu编译安装perf工具
linux·运维·ubuntu
xuanwojiuxin5 小时前
linux panic-propagation
linux·运维·服务器
藥瓿亭7 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
liuzhenghua668 小时前
Python任务调度模型
java·运维·python
黎相思8 小时前
应用层自定义协议与序列化
运维·服务器·网络
测试开发Kevin9 小时前
详解Jenkins Pipeline 中git 命令的使用方法
运维·jenkins
什么半岛铁盒9 小时前
Linux线程与进程关系及底层实现
java·linux·运维
langmeng1109 小时前
使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式
运维·redis·docker·容器·集群
jllllyuz9 小时前
如何为服务器生成TLS证书
运维·服务器·数据库