如何使用ApacheHTTP代理到两个不同的tomcat服务器?

如何使用ApacheHTTP代理到两个不同的tomcat服务器?,apache,tomcat,proxy,Apache,Tomcat,Proxy,我有一个apachehttpd,我想将它代理到两个不同的tomcat服务器 我看到: 但这只适用于一台tomcat服务器。如果除了运行在8080上的tomcat之外,还有一台服务器运行在8081上会怎么样?您可以在第三台服务器上安装HAProxy,这将作为两台服务器的LB,或者您可以在任意一台服务器上安装HAProxy,然后执行以下配置 安装HAProxy(如果您运行的是Ubuntu/Debain发行版) 安装后,在配置中执行以下MOD: $ sudo vim /etc/haproxy/hap

我有一个apachehttpd,我想将它代理到两个不同的tomcat服务器

我看到:


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

您可以在第三台服务器上安装HAProxy,这将作为两台服务器的LB,或者您可以在任意一台服务器上安装HAProxy,然后执行以下配置

安装HAProxy(如果您运行的是Ubuntu/Debain发行版)

安装后,在配置中执行以下MOD:

$ 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端口上运行

参考职位:
如果你不使用Ubuntu/Debain,你也可以在谷歌上找到关于如何在你的linux发行版上安装haproxy的在线帮助。是的,你可以打赌它是一个行之有效的工具。

你可以在第三台服务器上安装HAProxy,这两台服务器都可以作为LB使用,或者你可以在任何一台服务器上安装HAProxy,然后执行以下配置

安装HAProxy(如果您运行的是Ubuntu/Debain发行版)

安装后,在配置中执行以下MOD:

$ 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端口上运行

参考职位:
如果你不使用Ubuntu/Debain,你也可以在谷歌上找到关于如何在你的linux发行版上安装haproxy的在线帮助。但是,你可以打赌,它是一种经过验证的工作工具。

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

<Proxy balancer://mycluster>
    BalancerMember http://tomcat1:8080/
    BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster 

平衡员http://tomcat1:8080/
平衡员http://tomcat2:8081/
代理通过/测试balancer://mycluster 

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

<Proxy balancer://mycluster>
    BalancerMember http://tomcat1:8080/
    BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster 

平衡员http://tomcat1:8080/
平衡员http://tomcat2:8081/
代理通过/测试balancer://mycluster 

Apache httpd两个现成的选项,用于代理任意数量的后端Tomcat实例:

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

    具体而言,请参阅以下httpd配置指令的文档:

    <Proxy>
    BalanceMember
    ProxyPass
    ProxyPassReverse
    
    
    平衡成员
    ProxyPass
    ProxyPassReverse
    
    您可以在此处找到所有这些的文档:

  • (一般)
  • (HTTP)
  • (AJP)
  • (负载平衡器)
  • 如果您想要使用AJP协议,并且您有更复杂的配置需求,那么您也可以使用
    mod_jk
    (而不是
    mod_jk2
    ,它现在是一个旧的、死的、废弃的、完全不相关的项目)。您可以在Tomcat网站上找到更多关于mod_jk的信息:

    mod_jk
    mod_proxy\u AJP
    相比,具有完全不同的配置过程和更多特定于AJP的选项


    您在原始帖子中提到的(简短)文档(来自旧的
    mod_jk2
    docs)指向ApacheHTTPD的
    mod_proxy_ajp
    mod_proxy_平衡器
    模块(尽管它指向了不稳定的httpd2.1,在编写文档时它是最前沿)。你在正确的轨道上:你只需要继续阅读。您完全可以使用此处描述的任何模块来代理任意数量的Tomcat后端实例。

    Apache httpd两个现成的选项,用于代理任意数量的后端Tomcat实例:

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

    具体而言,请参阅以下httpd配置指令的文档:

    <Proxy>
    BalanceMember
    ProxyPass
    ProxyPassReverse
    
    
    平衡成员
    ProxyPass
    ProxyPassReverse
    
    您可以在此处找到所有这些的文档:

  • (一般)
  • (HTTP)
  • (AJP)
  • (负载平衡器)
  • 如果您想要使用AJP协议,并且您有更复杂的配置需求,那么您也可以使用
    mod_jk
    (而不是
    mod_jk2
    ,它现在是一个旧的、死的、废弃的、完全不相关的项目)。您可以在Tomcat网站上找到更多关于mod_jk的信息:

    mod_jk
    mod_proxy\u AJP
    相比,具有完全不同的配置过程和更多特定于AJP的选项

    您在原始帖子中提到的(简短)文档(来自旧的
    mod_jk2
    docs)指向ApacheHT