scuess 发表于 2019-1-1 10:46:07

HAProxy构建虚拟域名负载

  一、HAProxy虚拟域名负载原理
  用户发起对www.test.com的请求,在HTTP报文中的HOST字段会出现www.test.com,这是用户在浏览器中输入IP则HOST字段为IP,如果为域名则对应的HOST字段就是该域名。
  例如: 以www.baidu.com和180.97.33.108 来访问百度首页。
http://s3.运维网.com/wyfs02/M00/5B/CF/wKiom1UTcgqyEer0AAoxGa_lpzQ292.jpghttp://s3.运维网.com/wyfs02/M01/5B/CF/wKiom1UTciPwbeArAAl4uS-2FNQ364.jpg
  

  因此HAProxy正是通过读取HTTP报文当中的HOST字段来判断调度给哪个节点,HAProxy通过配置文件关键字hdr(HOST)来获取HOST字段的值。
  

  二、配置
  拓扑如下:
http://s3.运维网.com/wyfs02/M00/5B/C9/wKioL1UTdV2yhYOuAAIp3wJ3mFk712.jpg
  

  


[*]  HAProxy配置
  开启路由转发:
#vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl-p  HAProxy配置:
global(略)
defaults(略)
frontendserver192.168.192.194:80
      acl www.test.comhdr(HOST)      #www.test.com的ACL
      acl www.try.comhdr(HOST)      # www.try.com的ACL
      use_backendtry.com if      #满足www.try.com则使用try.com调度
      use_backendtest.com if    # 满足则使用test.com调度
      default_backend default               #当不是www.test.com或者www.try.com则使用default节点调度
backendtry.com
      balance roundrobin
      server try.com192.168.112.130:80 check
backendtest.com
      balance source
      server test.com 192.168.112.131:80 check
backend default
      balanceroundrobin
      server default127.0.0.1:8008 check  开启本地default的HTTP服务器
# yum install-yhttpd
# cd /var/www/html/
# viindex.html
message from default
# vi /etc/httpd/conf/httpd.conf
Listen*:8008
# service httpd start  

  2.WEB--try.com配置
#yuminstallhttpd-y
#vi/var/www/html/index.html
   message from try.com
#service httpd start  3.WEB-test.com配置(同上)
  

  4.测试结果
  修改hosts文件
http://s3.运维网.com/wyfs02/M02/5B/CA/wKioL1UTf9yR3DnWAAIB8EJiS54153.jpg
http://s3.运维网.com/wyfs02/M02/5B/D0/wKiom1UTfrvwIBoJAAFMUlvfCbI252.jpg
http://s3.运维网.com/wyfs02/M01/5B/CA/wKioL1UTgACwDzMpAAFLXzUK_Es254.jpg
http://s3.运维网.com/wyfs02/M02/5B/CA/wKioL1UTgBGC9X2IAAFbc5xONlo654.jpg



页: [1]
查看完整版本: HAProxy构建虚拟域名负载