• Apache负载均衡配置(反向代理模式)


    参考地址:https://blog.csdn.net/wgw335363240/article/details/8221444

    Apache负载均衡配置(反向代理模式)

    本文只适合EKP产品,至于应用集群是我们自己实现的功能,所以这里的配置可能与其他产品的配置是不一致的。

    目前我们使用apache 做为前端负载均衡的转发器。考虑到jk 的不稳定性,我们建议使用代理模式协同工作。因此, 安装的apache 需要有proxy_module,proxy_ftp_module,proxy_http_module, rewrite_module,proxy_connect_module、proxy_balancer_module和proxy_ajp_module模块。

    下面以配置Apache与应用“ekp”整合为例,说明Apache如何与IP为“192.168.3.119”和“192.168.3.116”两台机器上的app应用是如何协同的。

    1.1  确认开启负载均衡模块

    打开Apache安装目录/conf/httpd.conf文件,开启下图中红色框内的模块,如果行是以“#”号开头,则去掉“#”号(“#”号开头的行为注释行),如下图:

    1.2  添加EKP负载均衡配置文件

    在httpd.conf文件接近末尾的位置,增加引用ekp配置文件的配置,代码如下:

    # Virtual ekp host for balacing

    Include conf/httpd-ekp-balance.conf

    新增配置在配置文件中的位置如下图:

    1.3  EKP负载均衡配置文件设置

    在Apache安装目录/conf目录下新建一个名为“httpd-ekp-balance.conf”的文件,在该文件中添加下面的内容。下面的内容是一个完整的两个EKP节点的集群示例设置,一般来说,只要替换其中的具体IP 及相关目录的路径即可完成配置。如果多于两个节点,则是在proxy 节处加入BalancerMember 并在后面的ProxyPassReverse 节加入新的节点即可。下表中的红色部分“m69”和“m115”需要与每个应用ekpWEB-INFclasses rswcmcluster.properties文件中的参数“cluster.session.balancerRoute”保持一致。

    <VirtualHost *:80>

        AddType text/javascript .js

        AddType text/css; .css

        AddType text/html;charset=UTF-8  .html

        ServerName my.ekp.com

        ServerAdmin wu.guowei@trs.com.cn

        <Proxy  balancer://ekpcluster>

            BalancerMember http://192.9.200.69:8065 route=m69

            BalancerMember http://192.9.200.115:8060 route=m115

            ProxySet stickysession=CSID

        </Proxy>

        RewriteEngine on

        RewriteRule  ^/ekp/(.*.(jsp|do|jws|appletdo))$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule  ^/ekp/(.*;jsessionid.*)$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule ^/ekp/(sd)$  balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(TRSIdSSSOProxyServlet)$  balancer://ekpcluster/ekp/$1 [P,L]

        #SoapService rule

        RewriteRule ^/ekp/services/(.*) http://192.9.200.69:8065/ekp/services/$1 [P,L]

     

        ProxyPassReverse / http://192.9.200.69:8065/

        ProxyPassReverse /http://192.9.200.115:8060/

       

    #webpic

        Alias /webpic "Z:/WCMData/webpic"

        <Directory "Z:/WCMData/webpic">

            Options -Indexes MultiViews  FollowSymLinks Includes

            AllowOverride None

            Order allow,deny

            Allow from all

        </Directory>

        <Directory  "D:/TRS/TRSEKPV65_Cluster_B1111/WCMData/webpic/WEB-INF">

            Deny from all

        </Directory>

     

    #ekp

        Alias /ekp "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp"

        <Directory "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp">

            Options -Indexes MultiViews  FollowSymLinks Includes

            DirectoryIndex index.html

            AllowOverride None

            Order allow,deny

            Allow from all

        </Directory>

        <Directory "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp/WEB-INF">

            Deny from all

        </Directory>

        <Location  /ekpcluster-manager>

            SetHandler balancer-manager

            #Deny from all

            #设定可以访问管理器的主机

            Allow from all

        </Location>

    </VirtualHost>

     

    注意事项

    l  route与stickysession

    会话固定是负载均衡器的一个重要功能,其作用是把用户会话固定在一个服务节点上,当且仅当该节点失效时才会将会话转发到其它节点处理。这两项的设置与EKP的设置也有关系,下面会再说到。

    l  配置文件中的RewriteRule都要在一行

    示例中的一些换行可能是文档排版需要,在实际设置时要注意每一条RewriteRule都是一行。

    l  共享目录地址

    如果主节点和Apache配置在同一台机器上,则共享目录地址建议直接使用安装的WCMData地址。

    1.4  EKP负载均衡配置主要配置说明

    httpd-ekp-balance.conf主要配置说明如下:

    #section 1 设置负载均衡的成员

    <Proxy  balancer://ekpcluster>

            BalancerMember http://192.9.200.69:8065 route=m69

            BalancerMember http://192.9.200.115:8060 route=m115

            ProxySet stickysession=CSID

    </Proxy>

    #section 2 设置转发规则,只有动态请求才转发到应用服务器

    RewriteEngine  on

        RewriteRule  ^/ekp/(.*.(jsp|do|jws|appletdo))$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule ^/ekp/(.*;jsessionid.*)$  balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(sd)$ balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(TRSIdSSSOProxyServlet)$ balancer://ekpcluster/ekp/$1  [P,L]

    #之下ip可指向集群中任意的EKP服务器地址和对应应用端口

        RewriteRule ^/ekp/services/(.*) http://192.9.200.103:18080/ekp/services/$1 [P,L]

    #section 3 转发规则,反向代理模式转发到应用服务器

    #ProxyPassReverse  / balancer://ekpcluster

    ProxyPassReverse  / http://192.9.200.69:8065/

    ProxyPassReverse  / http://192.9.200.115:8060/

    #section 4  apache 均衡管理器

    <Location /ekpcluster-manager>

                       SetHandler  balancer-manager

                       #Deny  from all

                       #设定可以访问管理器的主机

                       Allow  from 192.9.200.69

    </Location>

     

    Apache负载均衡配置(反向代理模式)

    本文只适合EKP产品,至于应用集群是我们自己实现的功能,所以这里的配置可能与其他产品的配置是不一致的。

    目前我们使用apache 做为前端负载均衡的转发器。考虑到jk 的不稳定性,我们建议使用代理模式协同工作。因此, 安装的apache 需要有proxy_module,proxy_ftp_module,proxy_http_module, rewrite_module,proxy_connect_module、proxy_balancer_module和proxy_ajp_module模块。

    下面以配置Apache与应用“ekp”整合为例,说明Apache如何与IP为“192.168.3.119”和“192.168.3.116”两台机器上的app应用是如何协同的。

    1.1  确认开启负载均衡模块

    打开Apache安装目录/conf/httpd.conf文件,开启下图中红色框内的模块,如果行是以“#”号开头,则去掉“#”号(“#”号开头的行为注释行),如下图:

    1.2  添加EKP负载均衡配置文件

    在httpd.conf文件接近末尾的位置,增加引用ekp配置文件的配置,代码如下:

    # Virtual ekp host for balacing

    Include conf/httpd-ekp-balance.conf

    新增配置在配置文件中的位置如下图:

    1.3  EKP负载均衡配置文件设置

    在Apache安装目录/conf目录下新建一个名为“httpd-ekp-balance.conf”的文件,在该文件中添加下面的内容。下面的内容是一个完整的两个EKP节点的集群示例设置,一般来说,只要替换其中的具体IP 及相关目录的路径即可完成配置。如果多于两个节点,则是在proxy 节处加入BalancerMember 并在后面的ProxyPassReverse 节加入新的节点即可。下表中的红色部分“m69”和“m115”需要与每个应用ekpWEB-INFclasses rswcmcluster.properties文件中的参数“cluster.session.balancerRoute”保持一致。

    <VirtualHost *:80>

        AddType text/javascript .js

        AddType text/css; .css

        AddType text/html;charset=UTF-8  .html

        ServerName my.ekp.com

        ServerAdmin wu.guowei@trs.com.cn

        <Proxy  balancer://ekpcluster>

            BalancerMember http://192.9.200.69:8065 route=m69

            BalancerMember http://192.9.200.115:8060 route=m115

            ProxySet stickysession=CSID

        </Proxy>

        RewriteEngine on

        RewriteRule  ^/ekp/(.*.(jsp|do|jws|appletdo))$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule  ^/ekp/(.*;jsessionid.*)$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule ^/ekp/(sd)$  balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(TRSIdSSSOProxyServlet)$  balancer://ekpcluster/ekp/$1 [P,L]

        #SoapService rule

        RewriteRule ^/ekp/services/(.*) http://192.9.200.69:8065/ekp/services/$1 [P,L]

     

        ProxyPassReverse / http://192.9.200.69:8065/

        ProxyPassReverse /http://192.9.200.115:8060/

       

    #webpic

        Alias /webpic "Z:/WCMData/webpic"

        <Directory "Z:/WCMData/webpic">

            Options -Indexes MultiViews  FollowSymLinks Includes

            AllowOverride None

            Order allow,deny

            Allow from all

        </Directory>

        <Directory  "D:/TRS/TRSEKPV65_Cluster_B1111/WCMData/webpic/WEB-INF">

            Deny from all

        </Directory>

     

    #ekp

        Alias /ekp "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp"

        <Directory "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp">

            Options -Indexes MultiViews  FollowSymLinks Includes

            DirectoryIndex index.html

            AllowOverride None

            Order allow,deny

            Allow from all

        </Directory>

        <Directory "D:/TRS/TRSEKPV65_Cluster_B1111/Tomcat/webapps/ekp/WEB-INF">

            Deny from all

        </Directory>

        <Location  /ekpcluster-manager>

            SetHandler balancer-manager

            #Deny from all

            #设定可以访问管理器的主机

            Allow from all

        </Location>

    </VirtualHost>

     

    注意事项

    l  route与stickysession

    会话固定是负载均衡器的一个重要功能,其作用是把用户会话固定在一个服务节点上,当且仅当该节点失效时才会将会话转发到其它节点处理。这两项的设置与EKP的设置也有关系,下面会再说到。

    l  配置文件中的RewriteRule都要在一行

    示例中的一些换行可能是文档排版需要,在实际设置时要注意每一条RewriteRule都是一行。

    l  共享目录地址

    如果主节点和Apache配置在同一台机器上,则共享目录地址建议直接使用安装的WCMData地址。

    1.4  EKP负载均衡配置主要配置说明

    httpd-ekp-balance.conf主要配置说明如下:

    #section 1 设置负载均衡的成员

    <Proxy  balancer://ekpcluster>

            BalancerMember http://192.9.200.69:8065 route=m69

            BalancerMember http://192.9.200.115:8060 route=m115

            ProxySet stickysession=CSID

    </Proxy>

    #section 2 设置转发规则,只有动态请求才转发到应用服务器

    RewriteEngine  on

        RewriteRule  ^/ekp/(.*.(jsp|do|jws|appletdo))$ balancer://ekpcluster/ekp/$1 [P,L]

        RewriteRule ^/ekp/(.*;jsessionid.*)$  balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(sd)$ balancer://ekpcluster/ekp/$1 [P,L]

    RewriteRule ^/ekp/(TRSIdSSSOProxyServlet)$ balancer://ekpcluster/ekp/$1  [P,L]

    #之下ip可指向集群中任意的EKP服务器地址和对应应用端口

        RewriteRule ^/ekp/services/(.*) http://192.9.200.103:18080/ekp/services/$1 [P,L]

    #section 3 转发规则,反向代理模式转发到应用服务器

    #ProxyPassReverse  / balancer://ekpcluster

    ProxyPassReverse  / http://192.9.200.69:8065/

    ProxyPassReverse  / http://192.9.200.115:8060/

    #section 4  apache 均衡管理器

    <Location /ekpcluster-manager>

                       SetHandler  balancer-manager

                       #Deny  from all

                       #设定可以访问管理器的主机

                       Allow  from 192.9.200.69

    </Location>

     

  • 相关阅读:
    eclipse插件开发的打包
    零部件表设计 T_AIS_BASE_PARTS_INFO
    配送计划导入子表设计
    eclipse插件开发流程
    互联网公司的规律.txt
    用户 'sa' 登录失败。 连接SQL2000出现的问题。
    JAVA分页总结
    分类信息网络应用
    关于FLEX中找不到目标对象或通道未定义错误
    即时通讯IM的安全性比较
  • 原文地址:https://www.cnblogs.com/js1314/p/14303582.html
Copyright © 2020-2023  润新知