haproxy负载均衡原理使用haproxy实现负载均衡haproxy负载策略




haproxy负载均衡原理使用haproxy实现负载均衡haproxy负载策略

2022-07-21 2:25:42 网络知识 官方管理员

场景描述

后端服务有三个节点(node1,node2,node3),需要通过haproxy实现负载均衡服务器具采用ubuntu操作系统。

haproxy负载均衡原理(使用haproxy实现负载均衡)(1)

部署步骤

1、安装haproxy

apt-getinstallhaproxy

2、修改配置文件

vi/etc/haproxy/haproxy.cfg

globallog/dev/loglocal0log/dev/loglocal1noticechroot/var/lib/haproxystatssocket/run/haproxy/admin.sockmode660leveladminexpose-fdlistenersstatstimeout30suserhaproxygrouphaproxydaemon#DefaultSSLmateriallocationsca-base/etc/ssl/certscrt-base/etc/ssl/private#DefaultcipherstouseonSSL-enabledlisteningsockets.#Formoreinformation,seeciphers(1SSL).Thislistisfrom:#https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/#An alternativelistwithadditionaldirectivescanbeobtainedfrom#https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxyssl-default-bind-ciphersECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSSssl-default-bind-optionsno-sslv3defaultslogglobalmodehttpoptionhttplogoptiondontlognulltimeoutconnect5000timeoutclient50000timeoutserver50000errorfile400/etc/haproxy/errors/400.httperrorfile403/etc/haproxy/errors/403.httperrorfile408/etc/haproxy/errors/408.httperrorfile500/etc/haproxy/errors/500.httperrorfile502/etc/haproxy/errors/502.httperrorfile503/etc/haproxy/errors/503.httperrorfile504/etc/haproxy/errors/504.httplistenstatsbind0.0.0.0:1080  statsrefresh30s statsuri/stats statsrealmHaproxyManager  statsauthadmin:adminfrontendmainbind0.0.0.0:80aclurl_staticpath_beg-i/static/images/javascript/stylesheetsaclurl_staticpath_end-i.jpg.gif.png.css.js default_backendwebservicebackendwebservicebalanceleastconnserverweb1node1:80checkserverweb2node2:80checkserverweb3node3:80check

3、加载配置文件使生效

/usr/sbin/haproxy-f/etc/haproxy/haproxy.cfg

配置说明:

  • 1、frontendmain
    bind0.0.0.0:80
    aclurl_staticpath_beg-i/static/images/javascript/stylesheets
    aclurl_staticpath_end-i.jpg.gif.png.css.js 
    default_backendwebservice

这里default_backendwebservice需要和后端backend保持一致

  • 2、backendwebservice
    balanceleastconn
    serverweb1node1:80check
    serverweb2node2:80check
    serverweb3node3:80check

HAProxy还提供了其他类型的负载均衡:

•leastconn:每次将服务转发至连接数最少的服务器。

•source:对源IP地址进行哈希处理,用运行中服务器的总权重除以哈希值,即可决定哪台服务器将接收请求。

•uri:URI的左边部分(问号前面)经哈希处理,用运行中服务器的总权重除以哈希值。所得结果决定哪台服务器将接收请求。

•url_param:变量中指定的URL参数将在每个HTTPGET请求的查询串中进行查询。你基本上可以将使用蓄意制作的URL(craftedURL)的请求锁定于特定的负载均衡节点。

•hdr(name):HTTP头<name>将在每个HTTP请求中进行查询,被定向到特定节点。

这里配置后端服务,端口可在具体每个server上再用nginx做反向代理

发表评论:

最近发表
网站分类
标签列表