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

Apache负载均衡配置(反向代理模式)参考地址:https://blog.csdn.net/wgw335363240/article/details/8221444Apache负载均衡配置(反向代理模式)本文只适合EKP产品,至于应用

大家好,又见面了,我是你们的朋友全栈君。

参考地址: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文件,开启下图中红色框内的模块,如果行是以“#”号开头,则去掉“#”号(“#”号开头的行为注释行),如下图:

<span role="heading" aria-level="2">Apache负载均衡配置(反向代理模式)

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

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

# Virtual ekp host for balacing

Include conf/httpd-ekp-balance.conf

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

<span role="heading" aria-level="2">Apache负载均衡配置(反向代理模式)

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

在Apache安装目录/conf目录下新建一个名为“httpd-ekp-balance.conf”的文件,在该文件中添加下面的内容。下面的内容是一个完整的两个EKP节点的集群示例设置,一般来说,只要替换其中的具体IP 及相关目录的路径即可完成配置。如果多于两个节点,则是在proxy 节处加入BalancerMember 并在后面的ProxyPassReverse 节加入新的节点即可。下表中的红色部分“m69”和“m115”需要与每个应用ekp\WEB-INF\classes\trswcmcluster.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文件,开启下图中红色框内的模块,如果行是以“#”号开头,则去掉“#”号(“#”号开头的行为注释行),如下图:

<span role="heading" aria-level="2">Apache负载均衡配置(反向代理模式)

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

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

# Virtual ekp host for balacing

Include conf/httpd-ekp-balance.conf

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

<span role="heading" aria-level="2">Apache负载均衡配置(反向代理模式)

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

在Apache安装目录/conf目录下新建一个名为“httpd-ekp-balance.conf”的文件,在该文件中添加下面的内容。下面的内容是一个完整的两个EKP节点的集群示例设置,一般来说,只要替换其中的具体IP 及相关目录的路径即可完成配置。如果多于两个节点,则是在proxy 节处加入BalancerMember 并在后面的ProxyPassReverse 节加入新的节点即可。下表中的红色部分“m69”和“m115”需要与每个应用ekp\WEB-INF\classes\trswcmcluster.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>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155617.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QListWidget的QSS用法「建议收藏」

    QListWidget的QSS用法「建议收藏」本文完全是转载如下网址博客内容,如有侵权,请及时通知,博主会删除。原文地址:https://blog.csdn.net/u011125673/article/details/51753997QListWidget和QTableWidget的使用和属性,QTableWidget和QListWidget样式表的设置,滚动条的样式设置一、QListWidget的使用//一、QListWidgetli…

    2022年6月5日
    312
  • mysql数据库面试题目及答案_数据库面试题2021

    mysql数据库面试题目及答案_数据库面试题2021MySQL数据库面试题(2022版)文章目录一、基础基本概念MySQL有哪些数据库类型?CHAR和VARCHAR区别?数据库设计什么是三大范式?什么是范式和反范式,以及各自优缺点?二、索引索引的几种类型或分类?索引的优缺点?索引设计原则?索引的数据结构?Hash和B+树索引的区别?为何使用B+树而非B树做索引?什么是最左匹配原则?什么是覆盖索引?什么是索引下推?三、存储存储引擎有哪些常见的存储引擎?MyISAM和InnoDB的区别?InnoDB的四大特性?InnoDB为.

    2022年10月8日
    2
  • 2020年10月笔记

    2020年10月笔记

    2022年2月20日
    43
  • dm368流程_dm code

    dm368流程_dm codehttp://www.ahcit.com/?p=4038

    2022年8月13日
    2
  • zigbee协议栈初使用(二)按键控制「建议收藏」

    zigbee协议栈初使用(二)按键控制「建议收藏」zigbee协议栈初使用(二)按键控制1、在hal_key.c中修改按键端口2、修改hal_board_cfg.h3、修改OnBoard.c,文件在ZMain.c目录下4、回到SampleApp.c,找到按键事件处理函数5、进入SampleApp_HandleKey()函数,此处是按键处理,按下按键需要做的事件放在这添加如下代码:此处…

    2022年5月8日
    65
  • kafka零拷贝原理_通俗易解中的解是什么意思

    kafka零拷贝原理_通俗易解中的解是什么意思Kafka之所以那么快,其中一个很大的原因就是零拷贝(Zero-copy)技术,零拷贝不是kafka的专利,而是操作系统的升级,又比如Netty,也用到了零拷贝。下面我就画图讲解零拷贝,如果对你有帮助请点个赞支持。传统IOkafka的数据是要落入磁盘的,那么必然牵扯到磁盘的IO,传统磁盘IO又叫缓存IO,效率是很低的,那么为什么效率低呢?我们先来粗略讲讲操作系统的知识。用户空间以及内核空间的概念:我们知道现在操作系统都是采用虚拟存储器。那么对32位操作系统而言,它的寻址空间(虚拟存储空间)

    2022年9月21日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号