91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

haproxy中怎么實現反向代理和負載均衡

發布時間:2021-06-24 17:31:52 來源:億速云 閱讀:138 作者:Leah 欄目:云計算

這篇文章將為大家詳細講解有關haproxy中怎么實現反向代理和負載均衡,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

nginx可實現緩存功能,haproxy不能實現緩存功能,這里只說明其反向代理功能和負載均衡功能

yum install haproxy

主配置文件haproxy.cfg

開啟日志功能:

編輯/etc/rsyslog.conf文件

$ModLoad imudp

$UDPServerRun 514  #開啟udp514端口

local2.*                                                /var/log/haproxy.log

編輯/etc/haproxy/haproxy.cfg文件:

log         127.0.0.1 local2



配置負載均衡后端主機:

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



#---------------------------------------------------------------------

# main frontend which proxys to the backends

#---------------------------------------------------------------------

frontend  main *:80  #第一種方式

#        bind *:80    #第二種方式

#        bind *:8080    #只能用于frontend, listen; 

#        maxconn  也可以定義在這里或listen后,定義了單個實例的最大并發連接數,如果在global段定義就是所有實例總的

   default_backend             websrvs

#---------------------------------------------------------------------

# round robin balancing between the various backends

#---------------------------------------------------------------------

backend websrvs

    balance     roundrobin

    server  web1 192.168.20.7:80 check #定義的名字web1會被加到請求首部發到后端,當后端有虛擬主機時很有用

    server  web2 192.168.20.8:80 check


balance: 指明調度算法;幾種調度算法:

    動態:權重可動態調整
    靜態:調整權重不會實時生效
        roundrobin: 輪詢,動態算法,每個后端主機最多支持4128個連接;
        static-rr: 輪詢,靜態算法,每個后端主機支持的數量無上限;
        leastconn: 根據后端主機的負載數量進行調度;僅適用長連接的會話;動態;
hash-type:
    map-based:取模法;靜態;
    consistent:一致性哈希法;動態;

下面的四種調度算法都基于上面的兩種hash-type

        source:
        uri:對uri的左半部分(?標記之前的部分)或者整個uri做hash,除以后端服務器總權重后綁定到后端服務器
        url_param: 根據url中的指定的參數的值進行調度;把值做hash計算,并除以總權重;
        hdr(<name>)    :根據請求報文中指定的header(如use_agent, referer, hostname)進行調度;把指定的header的值做hash計算得值除以總權重;
示例:

backend websrvs

    balance     hdr(User-Agent)

    hash-type consistent

    server  web1 192.168.20.7:80 check

    server  web2 192.168.20.8:80 check

測試:

haproxy中怎么實現反向代理和負載均衡

mode: 健康狀態檢測時基于何種協議
    HAProxy的工作模式;默認為tcp;有三種:tcp, http, health

    只有客戶端和前端,后端都是用http通信才可以使用http模式

在front段也可以指定log:

frontend  main *:80 

    log global

     log         127.0.0.2 local3

使用use_backend 和acl定義后段

use_backend     dynamic  if  url_dyn
use_backend     static   if  url_css url_img extension_img

server段后可加的參數:

backup:設定為備用服務器,僅在負載均衡場景中的其它server均不可用于啟用此server;

check:啟動對此server執行健康狀態檢查,其可以借助于額外的其它參數完成更精細的設定,如:

  inter <delay>:設定健康狀態檢查的時間間隔,單位為毫秒,默認為2000;也可以使用fastinter和downinter來根據服務器端狀態優化此時間延遲;

  rise <count>:設定健康狀態檢查中,某離線的server從離線狀態轉換至正常狀態需要成功檢查的次數;

  fall <count>:確認server從正常狀態轉換為不可用狀態需要檢查的次數;

cookie <value>:為指定server設定cookie值,此處指定的值將在請求入站時被檢查,第一次為此值挑選的server將在后續的請求中被選中,其目的在于實現持久連接的功能;

maxconn <maxconn>:指定此服務器接受的最大并發連接數;如果發往此服務器的連接數目高于此處指定的值,其將被放置于請求隊列,以等待其它連接被釋放;

maxqueue <maxqueue>:設定請求隊列的最大長度;

observe <mode>:通過觀察服務器的通信狀況來判定其健康狀態,默認為禁用,其支持的類型有“layer4”和“layer7”,“layer7”僅能用于http代理場景;

redir <prefix>:啟用重定向功能,將發往此服務器的GET和HEAD請求均以302狀態碼響應;需要注意的是,在prefix后面不能使用/,且不能使用相對地址,以免造成循環;例如:

  server srv1 172.16.100.6:80 redir http://imageserver.magedu.com check

weight <weight>:權重,默認為1,最大值為256,0表示不參與負載均衡;
option httpchk

option httpchk <uri>

option httpchk <method> <uri>  

例如:

backend https_relay

    mode tcp

    option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www.lee123.com

    server apache1 192.168.1.1:443 check port 80

使用案例:

server first  172.16.100.7:1080 cookie first  check inter 1000

server second 172.16.100.8:1080 cookie second check inter 1000

基于瀏覽器cookie實現session sticky:定義健康檢查方式可以使用option:

要點:

(1) 每個server有自己惟一的cookie標識;

(2) 在backend中定義為用戶請求調度完成后操縱其cookie

backend websrvs

    balance     roundrobin

    cookie SERVERID insert nocache indirect

    server  web1 192.168.20.7:80 check cookie websrv1

    server  web2 192.168.20.8:80 check cookie websrv2

wKioL1Y4qbmzOZf2AAIwdL1Eqd0065.jpg測試:注意到cookie頭部的websrv1關鍵字了么?

開啟統計頁面:

listen statistics

        bind *:9090

        stats enable

        stats hide-version

        #stats scope .

        stats uri /haproxyadmin?stats

        stats realm "HAPorxy\ Statistics"

        stats auth admin:mageedu

        stats admin if TRUE

haproxy中怎么實現反向代理和負載均衡

向日志中記錄額外信息:
    capture request header
    capture response header

當mode為http時,記錄豐富的日志信息:
    option httplog----默認是開啟的

錯誤頁面重定向:
    errorfile: 使用haproxy主機本地文件進行響應;
    errorloc, errorloc302: 使用指定的url進行響應,響應狀態碼為302;不適用于GET以外的其它請求方法;
    errorloc303:返回303狀態碼;

添加請求或響應報文首部:
    reqadd
    rspadd

frontend  main

        bind *:80

        bind *:8080

    rspadd  Via:\ node1.lee.com

    default_backend             websrvs

haproxy中怎么實現反向代理和負載均衡出現了Via:

動靜分離的示例:

frontend  main

    bind *:80

    bind *:8080

    acl url_static       path_beg       -i /static /images /javascript /stylesheets

    acl url_static       path_end       -i .jpg .gif .png .css .js



    use_backend static          if url_static

    default_backend             appsrvs



#---------------------------------------------------------------------

# static backend for serving up images, stylesheets and such

#---------------------------------------------------------------------

    backend static

       balance roundrobin

       server static1 192.168.20.7 check

       server static2 192.168.20.8 check



    backend appsrvs

       balance     roundrobin

       option forwardfor except 127.0.0.1 header X-Client

       option httpchk

       cookie SERVERID insert indirect nocache

       server  web1 192.168.20.7:80 check cookie web1

       server  web2 192.168.20.8:80 check cookie web2

關于haproxy中怎么實現反向代理和負載均衡就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙桃市| 新竹县| 二连浩特市| 扶绥县| 淅川县| 高唐县| 聂拉木县| 黔东| 务川| 高陵县| 新龙县| 息烽县| 荔浦县| 新安县| 郸城县| 巴彦县| 中西区| 万山特区| 云龙县| 郑州市| 普宁市| 英超| 土默特右旗| 邮箱| 东乡县| 石门县| 南昌市| 响水县| 阳新县| 尤溪县| 砀山县| 和顺县| 高碑店市| 吐鲁番市| 稷山县| 营山县| 瑞昌市| 西乌| 临高县| 遂平县| 太仆寺旗|