AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 762062
Accepted
We are Borg
We are Borg
Asked: 2016-03-08 04:29:04 +0800 CST2016-03-08 04:29:04 +0800 CST 2016-03-08 04:29:04 +0800 CST

Apache Web 服务器,Tomcat:更改负载平衡配置,使一个 Tomcat 实例处于冷备用状态

  • 772

我在基于 Debian X64 的服务器上配置了负载平衡和故障转移设置。现在,我有 2 个 Tomcat 实例,它们处于负载平衡和故障转移状态,并且一直在运行。请求通过 Tomcat1(server1) 或 Tomcat2(server2) 提供服务。

在 Tomcat 前面有一个 Apache Web 服务器,它充当负载平衡器和故障转移,并使用 mod_jk 进行配置。两个 Tomcat 都通过AJP.

现在,我想做的是,我不想运行 2 个 Tomcat 实例,而只想运行一个。当此实例死亡或崩溃时,第二个 Tomcat 实例将被激活并随之提供请求。

这是配置:

worker.properties:

worker.list=loadbalancer
worker.list=jk-status
worker.jk-status.type=status
#worker.jk-status.read_only=true

worker.list=jk-manager
worker.jk-manager.type=status

worker.server1.port=8010
worker.server1.host=localhost
worker.server1.lbfactor=1
worker.server1.type=ajp13


worker.server2.port=8011
worker.server2.host=localhost
worker.server2.type=ajp13
worker.server2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=server1,server2

worker.loadbalancer.sticky_session=true

站点启用/000-默认:

Listen 443
<VirtualHost _default_:443>
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
ServerName www.domain.com
ServerAlias *.domain.com domain.com
JkMount /* loadbalancer
SSLEngine on
SSLCertificateFile /path/to/.crt
SSLCertificateKeyFile /path/to/.key
SSLCertificateChainFile /path/to/.ca-bundle
</VirtualHost>

将此添加到 apache2.conf :

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkLogFile   /etc/apache2/mod_jk.log
JkMount /* loadbalancer
JkMount /jkStatus jk-status
<IfModule mod_rewrite>
    RewriteEngine On
</IfModule>

Tomcat1:

<Connector port="8010" 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"
/>
<Connector port="8443" enableLookups="true" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="200" compression="off" sslProtocols="TLS" sslEnabledProtocols="TLSv1+TLSv1.1+TLSv1.2" 
 compressionMinSize="1024" scheme="https" secure="true" clientAuth="false" 
keystoreFile="/path/to/keystore" keystorePass="PASS" URIEncoding="utf-8"/>

与上面相同,只是在 Tomcat2 中更改了端口号。

我希望有足够的信息来处理这个问题。请告诉我。谢谢你。

更新配置

  worker.list=loadbalancer
  worker.list=jk-status
  worker.jk-status.type=status
  worker.list=jk-manager
  worker.jk-manager.type=status

  worker.loadbalancer.type=lb
  worker.loadbalancer.balance_workers=server1,server2

  # Define the first member worker
  worker.server1.type=ajp13
  worker.server1.host=localhost
  worker.server1.port=8010
  # Define preferred failover node for worker1
  worker.server1.redirect=server2

  # Define the second member worker
  worker.server2.type=ajp13
  worker.server2.host=localhost
  worker.server2.port=8011
  # Disable worker2 for all requests except failover
  worker.server2.activation=disabled
worker.loadbalancer.sticky_session=true
apache-2.2
  • 1 1 个回答
  • 1161 Views

1 个回答

  • Voted
  1. Best Answer
    ETL
    2016-03-08T06:47:25+08:002016-03-08T06:47:25+08:00

    根据mod_jk 文档,您似乎可以distance通过将距离设置得更大来创建热备用:

    一个整数,表示 lb 工人的平衡工人之间的偏好。负载均衡器永远不会选择一些平衡的工作人员,以防有另一个距离更短的可用工作人员。只有在给定距离以下的所有工人都出现错误、残疾或停止的情况下,距离较远的工人才有资格进行平衡。

    然而,在LoadBalancer Howto 文档中,给出了另一种方法:

    最后,您还可以通过将激活设置为禁用并结合添加到其他工作人员的属性重定向来配置热备用工作人员:

      # The advanced router LB worker
      worker.list=router
      worker.router.type=lb
      worker.router.balance_workers=worker1,worker2
    
      # Define the first member worker
      worker.worker1.type=ajp13
      worker.worker1.host=myhost1
      worker.worker1.port=8009
      # Define preferred failover node for worker1
      worker.worker1.redirect=worker2
    
      # Define the second member worker
      worker.worker2.type=ajp13
      worker.worker2.host=myhost2
      worker.worker2.port=8009
      # Disable worker2 for all requests except failover
      worker.worker2.activation=disabled
    

    worker1 上的重定向标志告诉负载均衡器将请求重定向到 worker2,以防 worker1 出现问题。在所有其他情况下,worker2 将不会收到任何请求,因此就像热备用一样。

    • 1

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve