我有 apache httpd,我想代理到两个不同的 tomcat 服务器。
我看到了这个:http: //tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
但这仅适用于一个 tomcat 服务器。如果除了运行在 8080 上的 tomcat 之外,我还有一台运行在 8081 上的服务器怎么办?
我有 apache httpd,我想代理到两个不同的 tomcat 服务器。
我看到了这个:http: //tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
但这仅适用于一个 tomcat 服务器。如果除了运行在 8080 上的 tomcat 之外,我还有一台运行在 8081 上的服务器怎么办?
使用mod_proxy_balancer有一种更简单的方法来设置负载平衡。只需在平衡器列表下列出 tomcat 服务器,然后将该平衡器放在您的ProxyPass
:
<Proxy balancer://mycluster>
BalancerMember http://tomcat1:8080/
BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster
Apache httpd 有两个开箱即用的选项,用于代理任意数量的后端 Tomcat 实例:
mod_proxy_http
mod_proxy_ajp
它们的配置相同,只是前者使用 HTTP 协议进行通信,后者使用 AJP 协议和以开头的 URLajp://
而不是http://
后端服务器。两者都可以以相同的方式配置为负载平衡、故障转移等。/app1
您可以通过为单独的 URL 空间(例如-> Tomcat1 和-> Tomcat2)提供单独的代理配置来代理完全独立的 Tomcat 实例(即没有负载平衡:只是单独的后端),/app2
或者您可以配置两个(或更多)后端实例用于负载平衡等
具体来说,请查看以下 httpd 配置指令的文档:
<Proxy>
BalanceMember
ProxyPass
ProxyPassReverse
您可以在此处找到所有这些的文档:
如果你想使用 AJP 协议并且你有更复杂的配置需求,你也可以使用mod_jk
( not mod_jk2
,这是一个老的、死的、被遗弃的、完全不相关的项目,现在)。mod_jk
您可以在 Tomcat 网站上找到更多信息:http: //tomcat.apache.org/connectors-doc/
mod_jk
与mod_proxy_ajp
.
您在原始帖子(来自旧文档)中提到的(简短)文档mod_jk2
指向 Apache httpdmod_proxy_ajp
和mod_proxy_balancer
模块(尽管它指向不稳定的 httpd 2.1,这是编写文档时的前沿)。你走在正确的轨道上:你只需要继续阅读。您绝对可以使用此处描述的任何模块代理任意数量的 Tomcat 后端实例。
您可以在第三台服务器上安装 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。但是,是的,您可以押注它,因为它是经过验证的工作工具。