- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Apache 和 tomcat 来设置负载平衡和故障转移。最初我以为 load-balancing
会包括 fail-over
,但我错了。我认为如果一个实例不活动,那么使用其他实例也会成为负载管理的一部分。术语够多了,我设置了故障转移,但具有讽刺意味的是 fail-over
本身失败了。
一旦我关闭了一个 tomcat 实例,整个设置就死了,我得到了 503。有人可以帮助我了解问题所在吗?
在 apache2.conf 中添加:
JkWorkersFile /etc/apache2/workers.properties
JkMount /* loadbalancer
worker .属性:
GNU nano 2.2.6 文件:workers.properties
worker.list=loadbalancer
worker.server1.port=8010
worker.server1.host=localhost
worker.server1.type=ajp13
worker.server2.port=8011
worker.server2.host=localhost
worker.server2.type=ajp13
worker.server1.lbfactor=1
worker.server2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=server1,server2
worker.loadbalancer.method=B
worker.balancer.sticky_session=True
000-启用站点的默认值:
JkMountCopy On
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8010 route=server1 connectiontimeout=10
BalancerMember ajp://localhost:8011 route=server2 connectiontimeout=10
ProxySet stickysession=JSESSIONID|jsessionid
Order Deny,Allow
Deny from none
Allow from all
</Proxy>
<VirtualHost *:80>
ProxyRequests off
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from none
Allow from all
</Location>
首先是tomcat的server.xml:
<Connector port="8080" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024"
connectionTimeout="20000"
redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/>
<Connector port="443" enableLookups="false" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force"
compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore_file" keystorePass="PASSWORD" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Connector port="8010" protocol="AJP/1.3" redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="server1">
// No modifications inside
</Engine>
第二个 Tomcat 的 server.xml :
<Connector port="8081" proxyPort="80" protocol="HTTP/1.1" compression="force" compressionMinSize="1024"
connectionTimeout="20000"
redirectPort="443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"/>
<Connector port="443" enableLookups="false" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="200" compression="force"
compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="keystore_file" keystorePass="PASSWORD" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" URIEncoding="utf-8"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/ javascript,application/x-javascript,application/javascript"
/>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="server2">
// No modifications here
</Engine>
我在同时实现负载平衡和故障转移的配置中犯了什么错误。多谢。
最佳答案
首先,您正在使用两个不同的代理模块,不要那样做。
一个是mod_jk,配置文件是workers.properties、uriworkermap.properties和apache.conf中这部分:
JkMount /* loadbalancer
默认为 000
JkMountCopy On
另一个是mod_proxy和000-default中的相关配置:
<Proxy balancer://mycluster>
BalancerMember ajp://localhost:8010 route=server1 connectiontimeout=10
BalancerMember ajp://localhost:8011 route=server2 connectiontimeout=10
ProxySet stickysession=JSESSIONID|jsessionid
Order Deny,Allow
Deny from none
Allow from all
</Proxy>
<VirtualHost *:80>
ProxyRequests off
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from none
Allow from all
</Location>
至于评论,让我们走 mod_jk 路线吧。首先删除 mod_proxy 配置部分,基本上所有在 000-default 中的部分只留下:
JkMountCopy On
然后禁用此模块的加载(不是必需的但更好):
mod_proxy_*
然后在 workers.properties 中将此添加到你是负载均衡器的工作人员:
worker.loadbalancer.sticky_session_force = false
然后检查是否一切正常,我会根据此更新答案
关于java - Tomcat、 Apache : Failover not working even after configuration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181013/
当我使用 log4j 2.1 编译我的 spring 3.2.9 web 应用程序时,这个错误出现在控制台中: 2015-02-02 12:08:25,213 ERROR appender Failo
在 LMAX Disruptor模式中,复制器用于将输入事件从主节点复制到从节点。因此设置可能如下所示: 主节点的复制器将事件写入数据库(尽管我们可以想到比写入数据库更好的机制 - 这对于问题陈述来说
Hazelcast 文档指出 If a member goes down, its backup replica that also holds the same data, will dynamic
我正在将 Azure 移动服务用于生产移动应用程序。我正在查看 Azure 门户中的故障转移配置,但找不到任何相关信息。 有“流量管理器”,如 Azure documentation 中所述。 。但根
RabbitMQ 默认支持集群,但队列不会被复制,而是绑定(bind)到创建它们的节点。我现在正在寻找除了他们记录的 DRBD 解决方案之外使 RabbitMQ 高度可用的方法,因为保留整个服务器除了
我有以下 MySQL 实例以及复制设置: S1 -----> (M1 M2),其中: M1 - M2 是一个多主复制设置, S1 - 复制在主 M1 上完成的写入的从站。 现在,我正在尝试使用 ch
我遇到的情况是,如果节点发生故障,我必须保持 session 粘性。配置为: 三个节点(as1、as2、as3)在 JBoss 4.2.3(同构集群)上运行我们的企业应用程序 HAProxy 为每个节
我已经创建了一个 Redis 集群,如下所示。 xxx.xxx.xxx.195:9100 xxx.xxx.xxx.196:9100 xxx.xxx.xxx.197:9100 xxx.xxx
我有一个使用 Selenium-RC 和 TestNG 用 Java 编写的测试套件 - public class testSuite extends SelenestTestCase { @Be
MySQL 是否带有内置的自动故障转移功能?或者,是否有负载平衡器可以“检测”数据库是否处于事件状态……如果不存在……将其发送到故障转移数据库? 我知道基本的 MySQL,但不知道为一个主数据库设计故
我正在尝试用 6 台机器实现一个 Redis 集群。我有一个由六台机器组成的 vagrant 集群: 192.168.56.101 192.168.56.102 192.168.56.103 192.
我遇到了 ActiveMQ 故障转移传输问题。我正在使用 Spring (3.0.5) 和 ActiveMQ (5.2.0)。我想使用 ActiveMQ 主题来广播一些消息。我的配置如下所示: jms
从 System.Data.OracleClient 转换为 ODB.NET,需要帮助转换我的连接字符串。这是我与 System.Data.OracleClient 一起使用的内容。 SERVER=(
我正在使用 Apache 和 tomcat 来设置负载平衡和故障转移。最初我以为 load-balancing 会包括 fail-over,但我错了。我认为如果一个实例不活动,那么使用其他实例也会成为
我们正在尝试连接到启用了数据库镜像的 SQL。我们有 2 个服务器:DB1(主体)和 DB2(镜像)。 我们正在使用连接字符串: Provider=SQLOLEDB;Data Source=DB1;F
提前谢谢您... 我创建了一个故障转移组并想要测试故障转移。我通过故障转移组选项卡强制进行故障转移,它表示已成功,并且辅助数据库现在是主数据库。但是,当我尝试写入它时,我收到此错误: 错误: [Mic
使用 DefaultJmsListenerContainerFactory 订阅消息时在使用故障转移 activemq 传输的 spring 和 Camel 中,我不断收到低于 INFO 消息的消息。
我们使用 Azure TrafficManager,并且我们有某些端点想要检查传入调用的来源/引用域(无论如何,原始 IP 在云中都是一个坏主意)我想知道 TrafficManager 是否或如何
我希望能够随时升级我的硬件,而不会中断我的网络应用程序,即随时关闭其中一台计算机,交换/升级它,重新插入它,并进行设置,以便它获得一切返回,包括另一台计算机上发生的所有磁盘更改,同时 wep 应用程序
因此,我正在使用一些本地虚拟机测试一些玩具 postgresql 基础设施,以确定 pgpool 在故障转移时的行为方式。我已经配置了一个基本设置,其中我有两台数据库机器(192.168.0.2 和
我是一名优秀的程序员,十分优秀!