zoukankan      html  css  js  c++  java
  • haproxy配置示例

    1.最基础的的配置

    下面的例子配置了一个监听在所有接口的80端口上HTTP proxy服务,它转发所有的请求至后端监听在127.0.0.1:8000上的"server"。
    global
       daemon
       maxconn 25600
       
    defaults
       mode http
       timeout connect 5000ms
       timeout client 50000ms
       timeout server 50000ms
        
    frontend http-in
       bind *:80
       default_backend servers
        
    backend servers
       server server1 127.0.0.1:8080 maxconn 32

    2.http服务器实例

    #---------------------------------------------------------------------
    # Global settings
    #---------------------------------------------------------------------
    global
        # to have these messages end up in /var/log/haproxy.log you will
        # need to:
        #
        # 1) configure syslog to accept network log events.  This is done
        #    by adding the '-r' option to the SYSLOGD_OPTIONS in
        #    /etc/sysconfig/syslog
        #
        # 2) configure local2 events to go to the /var/log/haproxy.log
        #  file. A line like the following can be added to
        #  /etc/sysconfig/syslog
        #
        #    local2.*                      /var/log/haproxy.log
    
        log        127.0.0.1 local2
    
        chroot     /var/lib/haproxy
        pidfile    /var/run/haproxy.pid
        maxconn    4000
        user       haproxy
        group      haproxy
        daemon
    
    defaults
        mode                    http
        log                     global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor       except 127.0.0.0/8
        option                  redispatch
        retries                 3
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 30000
    
    listen stats
        mode http
        bind 0.0.0.0:1080
        stats enable
        stats hide-version
        stats uri    /haproxyadmin?stats
        stats realm  Haproxy Statistics
        stats auth    admin:admin
        stats admin if TRUE
    
    frontend http-in
        bind *:80
        mode http
        log global
        option httpclose
        option logasap
        option dontlognull
        capture request  header Host len 20
        capture request  header Referer len 60
        default_backend servers
    
    frontend healthcheck
        bind :1099
        mode http
        option httpclose
        option forwardfor
        default_backend servers
    
    backend servers
        balance roundrobin
        server websrv1 192.168.10.11:80 check maxconn 2000
        server websrv2 192.168.10.12:80 check maxconn 2000

    3.负载均衡MySQL服务的配置示例

    后端的两个mysql主机应该设置为多主模式或者全部为从主机(只读),这样读写才不会出现问题。
    #---------------------------------------------------------------------
    # Global settings
    #---------------------------------------------------------------------
    global
        # to have these messages end up in /var/log/haproxy.log you will
        # need to:
        #
        # 1) configure syslog to accept network log events.  This is done
        #    by adding the '-r' option to the SYSLOGD_OPTIONS in
        #    /etc/sysconfig/syslog
        #
        # 2) configure local2 events to go to the /var/log/haproxy.log
        #  file. A line like the following can be added to
        #  /etc/sysconfig/syslog
        #
        #    local2.*                      /var/log/haproxy.log
        #
        log        127.0.0.1 local2
    
        chroot      /var/lib/haproxy
        pidfile    /var/run/haproxy.pid
        maxconn    4000
        user        haproxy
        group      haproxy
        daemon
    
    defaults
        mode                    tcp
        log                    global
        option                  httplog
        option                  dontlognull
        retries                3
        timeout http-request    10s
        timeout queue          1m
        timeout connect        10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check          10s
        maxconn                600
    
    listen stats
        mode http
        bind 0.0.0.0:1080
        stats enable
        stats hide-version
        stats uri    /haproxyadmin?stats
        stats realm  Haproxy Statistics
        stats auth    admin:admin
        stats admin if TRUE
    
    
    frontend mysql
        bind *:3306
        mode tcp
        log global
        default_backend mysqlservers
    
    backend mysqlservers
        balance leastconn
        server dbsrv1 192.168.10.11:3306 check port 3306 intval 2 rise 1 fall 2 maxconn 300
        server dbsrv2 192.168.10.12:3306 check port 3306 intval 2 rise 1 fall 2 maxconn 300

    4.动静分离示例

    global
        log        127.0.0.1 local2
    
        chroot      /var/lib/haproxy
        pidfile    /var/run/haproxy.pid
        maxconn    4000
        user        haproxy
        group      haproxy
        daemon
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    
    defaults
        mode                    http
        log                    global
        option                  httplog
        option                  dontlognull
        option http-server-close
        option forwardfor      except 127.0.0.0/8
        option                  redispatch
        retries                3
        timeout http-request    10s
        timeout queue          1m
        timeout connect        10s
        timeout client          1m
        timeout server          1m
        timeout http-keep-alive 10s
        timeout check          10s
        maxconn                30000
    
    listen stats
        mode http
        bind 0.0.0.0:1080
        stats enable
        stats hide-version
        stats uri    /haproxyadmin?stats
        stats realm  Haproxy Statistics
        stats auth    admin:admin
        stats admin if TRUE
    
    
    frontend http-in
        bind *:80
        mode http
        log global
        option httpclose
        option logasap
        option dontlognull
        capture request  header Host len 20
        capture request  header Referer len 60
        acl url_static      path_beg      -i /static /images /javascript /stylesheets
        acl url_static      path_end      -i .jpg .jpeg .gif .png .css .js
    
        use_backend static_servers          if url_static
        default_backend dynamic_servers
    
    backend static_servers
        balance roundrobin
        server imgsrv1 172.16.200.7:80 check maxconn 6000
        server imgsrv2 172.16.200.8:80 check maxconn 6000
    
    backend dynamic_servers
        cookie srv insert nocache
        balance roundrobin
        server websrv1 172.16.200.7:80 check maxconn 1000 cookie websrv1
        server websrv2 172.16.200.8:80 check maxconn 1000 cookie websrv2
        server websrv3 172.16.200.9:80 check maxconn 1000 cookie websrv3

    5.实例:keepcalived + haproxy

    haproxy.cfg
    # this config needs haproxy-1.1.28 or haproxy-1.2.1
    
    global
        log 127.0.0.1    local0
        log 127.0.0.1    local3 warning
        #log 127.0.0.1    local1 notice
        #log loghost    local0 info
        maxconn 3000
        chroot /usr/share/haproxy
        uid nobody
        gid nobody
        daemon
        #debug
        #quiet
    
    defaults
        log    global
        mode    http
        option    httplog
        option    dontlognull
        retries    3
        option    redispatch
        maxconn    20000
        timeout connect    5000
        timeout    client  50000
        timeout server    50000
    
    backend varnish_www 
        #option httpchk
        option forwardfor
        balance uri
        #server varnish1 172.18.203.134:6081 check inter 3000 rise 2 fall 5 
        #server varnish2 172.18.203.135:6081 check inter 3000 rise 2 fall 5
        server varnish1 172.18.203.134:6081
        server varnish2 172.18.203.135:6081
    
    backend varnish_m
        #option httpchk
        option forwardfor
        balance uri
        hash-type consistent
        #server varnish3 172.18.203.136:6081  check
        #server varnish4 172.18.203.137:6081  check
        server varnish3 172.18.203.136:6081
        server varnish4 172.18.203.137:6081
    
    frontend host
        bind *:80
        acl host_m hdr(host) -i m.tycoon.com
        acl host_www hdr(host) -i www.tycoon.com
        acl host_www path_end -i .jpg .jpeg .png .gif .js .css .html .htm
        use_backend varnish_www if host_www
        use_backend varnish_m if host_m
    
    listen stats *:8901
        stats enable
        stats refresh 30s
        stats hide-version
        stats uri /haproxy?stats
        stats realm HAProxy Statistics
        stats auth admin:tycoon
    keepcalived主:
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         root@localhost
       }
       notification_email_from admin@tycoon.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id lb-haproxy
       vrrp_mcast_group4 224.0.203.10
    }
    
    vrrp_script chk_haproxy {
        script "killall -0 haproxy"
        interval 5
        weight -8
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass tUPEA8I5
        }
    
        track_script {
            chk_haproxy
        }
    
        virtual_ipaddress {
            172.18.203.253/16
        }
    }
    keepalived从:
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         root@localhost
       }
       notification_email_from admin@tycoon.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id lb-haproxy
       vrrp_mcast_group4 224.0.203.10
    }
    
    vrrp_script chk_haproxy {
        script "killall -0 haproxy"
        interval 5
        weight -8
    }
    
    vrrp_instance VI_1 {
        state SLAVE
        interface eth0
        virtual_router_id 71
        priority 95
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass tUPEA8I5
        }
    
        track_script {
            chk_haproxy
        }
    
        virtual_ipaddress {
            172.18.203.253/16
        }
    }

    6.实例2:ACL匹配子网站

    global 
        log 127.0.0.1 local0 info
        maxconn 4096
        user  nobody
        group nobody
        
        daemon 
        nbproc 1
        pidfile /usr/local/haproxy/logs/haproxy.pid
        
    defaults
        mode http
        retries 3
        timeout connect 5s
        timeout client  30s
        timeout server  30s
        timeout check   2s
        
    listen admin_stats
        bind 0.0.0.0:19088
        mode http
        log 127.0.0.1  local0 err
        stats refresh 30s
        stats uri /haproxy-status
        stats realm welcome login Haproxy
        stats auth admin:admin
        stats auth user1:passwd1
        stats hide-version
        stats admin if TRUE
        
    front www
        bind *:80
        mode http
        option httpdlog
        option forwardfor
        log    global
        
        acl host_www      hdr_reg(host)   -i ^(www.tb.com|tb.com)
        acl host_bbs      hdr_dom(host)   -i bbs.tb.com
        acl host_blog     hdr_beg(host)   -i blog.tb.com
        
        use_backend server_www    if     host_www
        use_backend server_bbs    if     host_bbs
        use_backend server_blog   if     host_blog
        default_backend server_default
        
    backend server_default
        mode     http
        option   redispatch
        option   abortonclose
        balance  roundrobin
        cookie   SERVER
        
        option httpcheck GET /check_status.html
        server default1     192.168.88.90:8000    cookie default1 weight 3 check inter 2000 rise 2 fail 3
        server default2     192.168.88.91:8000    cookie default2 weight 3 check inter 2000 rise 2 fail 3
        
    backend server_www
        mode     http
        option   redispatch
        option   abortonclose
        balance  source
        cookie   SERVERID
        
        option httpcheck GET /check_status.jsp
        server www1     192.168.88.80:80     cookie www1 weight 6 check inter 2000 rise 2 fail 3
        server www2     192.168.88.81:80     cookie www2 weight 6 check inter 2000 rise 2 fail 3
        server www3     192.168.88.82:80     cookie www3 weight 6 check inter 2000 rise 2 fail 3
        
    backend server_bbs
        mode     http
        option   redispatch
        option   abortonclose
        balance  source
        cookie   SERVERID
        
        option httpcheck GET /check_status.php
        server bbs1     192.168.88.83:8080    cookie bbs1 weight 8 check inter 2000 rise 2 fail 3
        server bbs2     192.168.88.84:8090    cookie bbs2 weight 8 check inter 2000 rise 2 fail 3
        
    backend server_blog
        mode     http
        option   redispatch
        option   abortonclose
        balance  roundrobin
        cookie   SERVERID
        
        option httpcheck GET /check_status.php
        server blog1     192.168.88.85:8000    cookie blog1 weight 5 check inter 2000 rise 2 fail 3
        server blog2     192.168.88.86:8000    cookie blog2 weight 5 check inter 2000 rise 2 fail 3
     



  • 相关阅读:
    第五,六章
    第三,四章
    第一,二章
    20131019作业 2 分支、循环结构
    20131016课堂实验4
    20131014课堂实验3
    20131007国庆作业例7-11,7-12,7-13,7-14
    20131006国庆作业例7-7,7-8,7-9
    20131006国庆作业例7-4,7-5,7-6
    20131006国庆作业第七章例7-1,7-2,7-3
  • 原文地址:https://www.cnblogs.com/zhangpf/p/7550354.html
Copyright © 2011-2022 走看看