Apache反向代理&负载均衡

  1. 知识准备(Windows安装Apache、Windows运行多个Tomcat)
  2. 依赖模块(说明文档)
    1.编辑D:\program\Apache24\conf\httpd.conf-->打开注释-->重启服务
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    
    2.报错日志-->D:\win11\program\httpd_2.4.54\Apache24\logs\error.log
    -->Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
    -->打开注释:LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

    Apache反向代理&负载均衡_第1张图片
    Apache反向代理&负载均衡_第2张图片
    Apache反向代理&负载均衡_第3张图片
    Apache反向代理&负载均衡_第4张图片
    Apache反向代理&负载均衡_第5张图片

  3. 反向代理
    1.Apache反向代理前
    http://localhost:8686-->Apache欢迎页
    http://localhost:8181-->Tomcat8欢迎页
    
    2.Apache反向代理配置(httpd.conf)
    ProxyPass "/"  "http://localhost:8181/"
    ProxyPassReverse "/"  "http://localhost:8181/"
    
    3.Apache反向代理后
    http://localhost:8686-->Tomcat8欢迎页
    
    4.解释说明
    使用Apache反向代理前,用户访问Tomcat项目需要直接请求Tomcat服务器,
    使用Apache反向代理后,用户请求代理服务器Apache,代理服务器Apache访问
    Tomcat项目,Apache将请求到的数据返回给用户,用户不知道Tomcat的ip

    Apache反向代理&负载均衡_第6张图片
    Apache反向代理&负载均衡_第7张图片

  4. 负载均衡

    1.Apache负载均衡前(httpd.conf)
    ProxyPass "/"  "http://localhost:8181/"
    ProxyPassReverse "/"  "http://localhost:8181/"
    http://localhost:8686-->Tomcat8欢迎页-->请求都转发到Tomcat8
    
    2.Apache负载均衡配置(httpd.conf)
    
        # Tomcat8欢迎页
        BalancerMember http://localhost:8181
    	# Tomcat9欢迎页
        BalancerMember http://localhost:8282
    	# Tomcat10欢迎页
    	BalancerMember http://localhost:8383
        # 该负载均衡方案需要打开注释:LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
        ProxySet lbmethod=bytraffic
    
    ProxyPass "/"  "balancer://tomcats/"
    ProxyPassReverse "/"  "balancer://tomcats/"
    
    3.Apache负载均衡后
    http://localhost:8686-->Tomcat8欢迎页/Tomcat9欢迎页/Tomcat10欢迎页-->请求分别转发到Tomcat8、Tomcat9、Tomcat10
    
    4.解释说明
    Tomcat8、Tomcat9、Tomcat10处理相同的业务,使用Apache负载均衡前,用户请求全部由
    Tomcat8服务器处理,使用Apache负载均衡后,用户请求由Tomcat8、Tomcat9、Tomcat10
    共同处理,负载均衡可以减轻单台服务器的压力,可以避免单台服务器挂机导致服务中断

    Apache反向代理&负载均衡_第8张图片
    Apache反向代理&负载均衡_第9张图片
    Apache反向代理&负载均衡_第10张图片
    Apache反向代理&负载均衡_第11张图片

  5. 负载均衡方案

    
        # Tomcat8欢迎页
        BalancerMember http://localhost:8181 loadfactor=1 timeout=5
        # Tomcat9欢迎页
        BalancerMember http://localhost:8282 loadfactor=2 timeout=5
        # Tomcat10欢迎页
    	BalancerMember http://localhost:8383 loadfactor=3 timeout=5
        ProxySet lbmethod=bytraffic
    
    ProxyPass "/"  "balancer://tomcats/"
    ProxyPassReverse "/"  "balancer://tomcats/"
    
    解释说明:
    1.权重loadfactor越大分配的请求越多,请求超时时间为5秒-->8、9、10、10、9、10、8。。。
    2.该负载均衡方案需要打开注释:LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    
        BalancerMember http://AAA:8080
        BalancerMember http://BBB:8080 loadfactor=3 timeout=1
        BalancerMember http://CCC:8080 status=+R
        BalancerMember http://DDD:8080 status=+R
        BalancerMember http://EEE:8080 status=+H
        BalancerMember http://FFF:8080 lbset=1
        BalancerMember http://GGG:8080 lbset=1
        ProxySet lbmethod=byrequests
    
    ProxyPass "/images/"  "balancer://myset/"
    ProxyPassReverse "/images/"  "balancer://myset/"
    
    解释说明:
    1.正常情况只有AAA和BBB处理请求
    2.AAA和BBB每挂掉一个CCC和DDD立刻启用一个
    3.AAA、BBB、CCC、DDD全部挂掉后EEE启用
    4.AAA、BBB、CCC、DDD、EEE全部挂掉后FFF和GGG同时启用
    5.该负载均衡方案需要打开注释:LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so

你可能感兴趣的:(apache,tomcat,服务器,反向代理,负载均衡)