如何配置HAProxy以将GET和POST HTTP请求发送到两个不同的应用程序服务器

时间:2011-04-15 06:57:23

标签: haproxy

我正在使用RESTful架构。我有两个运行的应用服务器。一个应该只服务GET请求而其他应该只服务POST请求。我想配置HAProxy以根据上述条件对请求进行负载均衡。请帮帮我

1 个答案:

答案 0 :(得分:26)

以下是部分HAProxy配置,可以为您执行此操作:

frontend webserver
  bind :80
  mode http
  acl is_post method POST
  use_backend post_app if is_post
  default_backend get_app

backend post_app
  mode http
  option forwardfor
  balance source
  option httpclose
  option httpchk HEAD / HTTP/1.0
  server post_app1 172.16.0.11:80 weight 1 check inter 1000 rise 5 fall 1
  server post_app2 172.16.0.12:80 weight 1 check inter 1000 rise 5 fall 1
  server post_app3 172.16.0.13:80 weight 1 check inter 1000 rise 5 fall 1 backup

backend get_app
  mode http
  option forwardfor
  balance source
  option httpclose
  option httpchk HEAD / HTTP/1.0
  server get_app1 172.16.0.21:80 weight 1 check inter 1000 rise 5 fall 1
  server get_app2 172.16.0.22:80 weight 1 check inter 1000 rise 5 fall 1
  server get_app3 172.16.0.23:80 weight 1 check inter 1000 rise 5 fall 1 backup