我有apache httpd,我想代理两个不同的tomcat服务器。
我看到了这个: http://tomcat.apache.org/connectors-doc-archive/jk2/proxy.html
但这只适用于一个tomcat服务器。如果除了运行8080的tomcat之外,我还有一台服务器在8081上运行怎么办?
答案 0 :(得分:2)
使用mod_proxy_balancer设置负载平衡的方法更简单。只需在平衡器列表下列出tomcat服务器,而不是将该平衡器放在ProxyPass
:
<Proxy balancer://mycluster>
BalancerMember http://tomcat1:8080/
BalancerMember http://tomcat2:8081/
</Proxy>
ProxyPass /test balancer://mycluster
答案 1 :(得分:1)
Apache httpd两个开箱即用的选项,用于代理任意数量的后端Tomcat实例:
mod_proxy_http
mod_proxy_ajp
它们被相同地配置到彼此,除了前者使用HTTP协议进行通信,而后者使用AJP协议和URL,与启动ajp://
,而不是http://
的后端服务器。两者都可以以相同的方式配置为负载平衡,故障转移等。你可以代理完全分离Tomcat实例(即,没有负载平衡:刚分离的后端)通过单独的URL空间提供单独的代理配置(例如/app1
- &GT; Tomcat1和/app2
- &GT; Tomcat2)或者您可以配置两个(或更多)后端实例以进行负载平衡等。
具体来说,请查看以下httpd配置指令的文档:
<Proxy>
BalanceMember
ProxyPass
ProxyPassReverse
您可以在此处找到所有这些文档:
如果您想使用AJP协议并且您有更复杂的配置需求,您也可以使用mod_jk
(不 mod_jk2
,这是一个老的,死的,被遗弃的,完全无关的项目,现在)。您可以在此处找到有关Tomcat站点上mod_jk
的更多信息:http://tomcat.apache.org/connectors-doc/
mod_jk
具有完全不同的配置程序和比mod_proxy_ajp
更多的AJP特定选项。
你在原来的文章中提到的(短)文件(从旧mod_jk2
文档)指向的Apache httpd的是mod_proxy_ajp
和mod_proxy_balancer
模块(尽管它指向不稳定的httpd 2.1 ,这是编写文档时的最前沿)。你走在正确的轨道上:你只需要继续阅读。您可以使用此处描述的任何模块代理任意数量的Tomcat后端实例。
答案 2 :(得分: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
设置完成后,在配置中执行以下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上运行。
参考。发布:http://www.leaseweblabs.com/2011/07/high-availability-load-balancing-using-haproxy-on-ubuntu-part-1/ 如果您不使用Ubuntu / Debain,如果您将谷歌关于如何在您的Linux发行版上设置haproxy,您也会找到在线帮助。但是,是的,你可以赌它,因为它是这项工作的成熟工具。