RedHat 7配置HAProxy實現Web負載平衡

來源:互聯網
上載者:User

標籤:haproxy   apache   https   負載平衡   web   


本文將簡單介紹使用HAProxy實現web負載平衡,主要內容包括基於權重的輪詢、為HAProxy配置https、配置http重新導向為https、配置HAProxy使用獨立日誌。

一、測試環境

HAProxy:

主機名稱:RH7-HAProxy

IP地址:192.168.10.20

作業系統:Red Hat Enterprise Linux Server release 7.2 (Maipo)迷你安裝

防火牆與SELinux:關閉

安裝的服務:HAProxy-1.5.14

WEB01:

主機名稱:RH7-Web-01

IP地址:192.168.10.21

作業系統:Red Hat Enterprise Linux Server release 7.2 (Maipo)迷你安裝

防火牆與SELinux:關閉

安裝的服務:Apache-httpd 2.4

WEB02:

主機名稱:RH7-Web-02

IP地址:192.168.10.22

作業系統:Red Hat Enterprise Linux Server release 7.2 (Maipo)迷你安裝

防火牆與SELinux:關閉

安裝的服務:Apache-httpd 2.4

本文原始出處:江健龍的技術部落格http://jiangjianlong.blog.51cto.com/3735273/1887279


二、WEB頁面訪問測試

1、使用瀏覽器訪問兩台web的IP地址,能成功訪問到不同的頁面,方便我們後面直觀地觀察負載平衡的效果。由於Apache的安裝配置不是本文重點,具體可參考本人之前的博文《RedHat 7安裝配置Apache 2.4》(http://jiangjianlong.blog.51cto.com/3735273/1858650)

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8C/22/wKioL1hjY7GQIT2oAAB9sPo9Z-Q977.png" title="01.PNG" alt="wKioL1hjY7GQIT2oAAB9sPo9Z-Q977.png" />

2、在RH7-HAProxy上也訪問一下兩台Web,確認也可以正常訪問

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8C/26/wKiom1hjY5my1D1pAABulDydIV4123.png" style="float:none;" title="02.PNG" alt="wKiom1hjY5my1D1pAABulDydIV4123.png" />


三、安裝配置HAProxy

1、[[email protected]~]yum -y install haproxy

2、[[email protected]~]systemctl start haproxy

3、[[email protected]~]systemctl enable haproxy

4、[[email protected]~]mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

5、[[email protected]~]vi /etc/haproxy/haproxy.cfg

增加以下內容,然後重啟haproxy服務

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8C/22/wKioL1hjZI-TnbmOAAFiHSs_B5w667.png" title="httpcfg-01.png" alt="wKioL1hjZI-TnbmOAAFiHSs_B5w667.png" />

6、使用瀏覽器訪問HAProxy的IP地址,多次重新整理,成功實現輪詢訪問web01和web02

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/8C/26/wKiom1hjZMOzES0YAAA0FRdLgmQ728.png" style="float:none;" title="03.PNG" alt="wKiom1hjZMOzES0YAAA0FRdLgmQ728.png" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/8C/26/wKiom1hjZMTzYzLQAAA2NC2WYNo532.png" style="float:none;" title="04.PNG" alt="wKiom1hjZMTzYzLQAAA2NC2WYNo532.png" />

7、登入haproxy的後台

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/8C/22/wKioL1hjZMSyRdUlAAB4xS9bihc152.png" style="width:730px;height:465px;" title="05.PNG" width="730" height="465" border="0" hspace="0" vspace="0" alt="wKioL1hjZMSyRdUlAAB4xS9bihc152.png" />

8、可以看到訪問web01和web02的相關統計資料

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8C/26/wKiom1hjZzHgtbgXAAHcY_QxeQU748.png" title="06-1.png" width="730" height="410" border="0" hspace="0" vspace="0" style="width:730px;height:410px;" alt="wKiom1hjZzHgtbgXAAHcY_QxeQU748.png" />

9、修改haproxy的設定檔,將web01的權重改為3,web02的權重仍為1,這樣訪問到兩台web的比例應該為3:1,改好後重啟下haproxy服務

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/8C/30/wKiom1hkorqiG64bAAGSVaS8aEs493.png" title="16-1.png" alt="wKiom1hkorqiG64bAAGSVaS8aEs493.png" />10、再次通過瀏覽器訪問HAProxy的IP地址,多次重新整理進行訪問測試

11、再次登入HAProxy後台查看統計資料,可以看到訪問到web01和web02的比例為3:1

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/8C/2C/wKioL1hko3rye2kVAAHH_SsL3qc068.png" title="17-1.png" width="730" height="384" border="0" hspace="0" vspace="0" style="width:730px;height:384px;" alt="wKioL1hko3rye2kVAAHH_SsL3qc068.png" />


四、配置HAProxy使用Https加密訪問

1、採用用戶端到HAProxy使用https、HAProxy到WEB端使用http的方式,只需要在HAProxy上配置認證,這裡我們就配置一張自我簽署憑證來測試一下

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/8C/22/wKioL1hjZMbSpW03AAIh2oV7Tlo001.png" style="width:730px;height:448px;" title="07.PNG" width="730" height="448" border="0" hspace="0" vspace="0" alt="wKioL1hjZMbSpW03AAIh2oV7Tlo001.png" />

2、查看一下配置好的認證jiangjianlong.pem

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8C/26/wKiom1hjZMiTt4wYAAO3H-_Vv_Q107.png" style="float:none;" title="08.PNG" alt="wKiom1hjZMiTt4wYAAO3H-_Vv_Q107.png" />

3、修改HAProxy的設定檔,增加以下參數後重啟haproxy服務

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/8C/22/wKioL1hjZM-hxDCOAAGVHbfsLho625.png" title="httpscfg-01.png" style="float:none;" alt="wKioL1hjZM-hxDCOAAGVHbfsLho625.png" />

4、使用https協議訪問HAProxy的IP地址,提示認證存在問題,這是因為自我簽署憑證不受瀏覽器信任,但說明上文配置的認證已經生效了,點擊繼續瀏覽此網站

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8C/22/wKioL1hjZMvC1x8qAACyAaI6wnc031.png" style="float:none;" title="09.PNG" alt="wKioL1hjZMvC1x8qAACyAaI6wnc031.png" />

5、成功訪問到Web01頁面,重新整理也能訪問到Web02,說明在https的加密訪問下負載平衡也沒問題

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/8C/22/wKioL1hjZMzxoQhMAAA70pipI_0221.png" style="width:770px;height:196px;" title="10.PNG" alt="wKioL1hjZMzxoQhMAAA70pipI_0221.png" width="770" height="196" border="0" hspace="0" vspace="0" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/8C/26/wKiom1hjZMzTxlUYAAA8X6cXllA765.png" style="width:760px;height:197px;" title="11.PNG" alt="wKiom1hjZMzTxlUYAAA8X6cXllA765.png" width="760" height="197" border="0" hspace="0" vspace="0" />

6、通過hosts解析配置一個網域名稱指向HAProxy的IP地址,也能正常訪問

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8C/22/wKioL1hjZM3xWjFZAAA8oj4Oj-g215.png" style="width:760px;height:183px;" title="12.PNG" alt="wKioL1hjZM3xWjFZAAA8oj4Oj-g215.png" width="760" height="183" border="0" hspace="0" vspace="0" />

7、查看下認證資訊,跟我們建立的認證資訊一致

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/8C/26/wKiom1hjZM2g_mJEAABSkHpo0NI309.png" style="float:none;" title="13.PNG" alt="wKiom1hjZM2g_mJEAABSkHpo0NI309.png" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/8C/26/wKiom1hjZM7yVTDoAABtEJWmnbo666.png" style="float:none;" title="14.PNG" alt="wKiom1hjZM7yVTDoAABtEJWmnbo666.png" />

8、配置http重新導向,自動將http重新導向為https,修改haproxy設定檔,增加以下參數,並重啟服務

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8C/2C/wKioL1hkpmqxojBkAABKa8RefkM777.png" title="23-1.png" alt="wKioL1hkpmqxojBkAABKa8RefkM777.png" />

9、使用瀏覽器測試,成功實現http自動重新導向為https進行訪問,但由於無法呈現這個動態效果,就不截了。


五、配置HAProxy使用獨立記錄檔

本文原始出處:江健龍的技術部落格http://jiangjianlong.blog.51cto.com/3735273/1887279

1、HAProxy的日誌預設寫入到系統日誌中去,我們可以把它獨立出來,方便排查管理。編輯/etc/rsyslog.conf,按進行修改

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8C/30/wKiom1hkqQ7z-AC7AADq-Fz59Wk157.png" style="width:730px;height:298px;" title="18-1.png" alt="wKiom1hkqQ7z-AC7AADq-Fz59Wk157.png" width="730" height="298" border="0" hspace="0" vspace="0" />

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/8C/2C/wKioL1hkqdyQlWOpAADACicoeVg756.png" title="19-1.png" alt="wKioL1hkqdyQlWOpAADACicoeVg756.png" />

2、重啟rsyslog服務,再通過瀏覽器訪問一下web以便產生日誌,然後查看/var/log/haproxy.log,發現日誌已經按照我們上文所配置的那樣,記錄到/var/log/haproxy.log來了

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/8C/2C/wKioL1hkqQ-ToP9_AAIVkv0gQgI773.png" style="width:730px;height:300px;" title="20.PNG" alt="wKioL1hkqQ-ToP9_AAIVkv0gQgI773.png" width="730" height="300" border="0" hspace="0" vspace="0" />


本文出自 “江健龍的技術部落格” 部落格,請務必保留此出處http://jiangjianlong.blog.51cto.com/3735273/1887279

RedHat 7配置HAProxy實現Web負載平衡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.