0

我有 apache httpd,我想代理到两个不同的 tomcat 服务器。

我看到了这个:http: //tomcat.apache.org/connectors-doc-archive/jk2/proxy.html

但这仅适用于一个 tomcat 服务器。如果除了运行在 8080 上的 tomcat 之外,我还有一台运行在 8081 上的服务器怎么办?

4

3 回答 3

2

使用mod_proxy_balancer有一种更简单的方法来设置负载平衡。只需在平衡器列表下列出 tomcat 服务器,然后将该平衡器放在您的ProxyPass

<Proxy balancer://mycluster>
    BalancerMember http://tomcat1:8080/
    BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster 
于 2012-06-17T18:19:46.710 回答
1

Apache httpd 有两个开箱即用的选项,用于代理任意数量的后端 Tomcat 实例:

  1. mod_proxy_http
  2. mod_proxy_ajp

它们的配置相同,只是前者使用 HTTP 协议进行通信,后者使用 AJP 协议和以开头的 URLajp://而不是http://后端服务器。两者都可以以相同的方式配置为负载平衡、故障转移等。/app1您可以通过为单独的 URL 空间(例如-> Tomcat1 和-> Tomcat2)提供单独的代理配置来代理完全独立的 Tomcat 实例(即没有负载平衡:只是单独的后端),/app2或者您可以配置两个(或更多)后端实例用于负载平衡等

具体来说,请查看以下 httpd 配置指令的文档:

<Proxy>
BalanceMember
ProxyPass
ProxyPassReverse

您可以在此处找到所有这些的文档:

  1. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html(一般)
  2. http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html (HTTP)
  3. http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html (AJP)
  4. http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html(负载平衡器)

如果你想使用 AJP 协议并且你有更复杂的配置需求,你也可以使用mod_jk( not mod_jk2,这是一个老的、死的、被遗弃的、完全不相关的项目,现在)。mod_jk您可以在 Tomcat 网站上找到更多信息:http: //tomcat.apache.org/connectors-doc/

mod_jkmod_proxy_ajp.

您在原始帖子(来自旧文档)中提到的(简短)文档mod_jk2指向 Apache httpdmod_proxy_ajpmod_proxy_balancer模块(尽管它指向不稳定的 httpd 2.1,这是编写文档时的前沿)。你走在正确的轨道上:你只需要继续阅读。您绝对可以使用此处描述的任何模块代理任意数量的 Tomcat 后端实例。

于 2012-06-17T18:57:36.517 回答
0

您可以在第三台服务器上安装 HAProxy,这将作为它们的 LB,或者您可以在其中任何一台服务器上安装 HAProxy,然后进行以下配置。

安装 HAProxy(如果您正在运行 Ubuntu/Debain 发行版)

  $ sudo apt-get install haproxy
  # Setup config file in /etc/haproxy/haproxy.cnf per requirement
  # change /etc/default/ to Enabled = 1 and restart haproxy service

设置后在配置中执行以下模块:

$ sudo vim /etc/haproxy/haproxy.cfg

global
        maxconn 4096
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        option  redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen webcluster *:80
        mode    http
        stats   enable
        stats   auth us3r:passw0rd
        balance roundrobin
        option httpchk HEAD / HTTP/1.0
        option forwardfor
        cookie LSW_WEB insert
        option httpclose
        server web01 192.168.0.1:8080 cookie LSW_WEB01 check
        server web02 192.168.0.2:8081 cookie LSW_WEB02 check

完成后,通过以下方式重新启动 HAProxy 服务:

$ sudo service haproxy restart

这里 192.168.0.1 和 192.168.0.2 可以是您的两台服务器,一台可以在 8080 端口上运行,另一台可以在 8081 上运行。

参考。发布:http ://www.leaseweblabs.com/2011/07/high-availability-load-balancing-using-haproxy-on-ubuntu-part-1/ 如果您使用谷歌搜索如何设置,您还可以找到在线帮助如果您不使用 Ubuntu/Debain,则在您的 linux 发行版上使用 haproxy。但是,是的,您可以押注它,因为它是经过验证的工作工具。

于 2012-06-17T18:10:13.077 回答