背景html
負載均衡(Server Load Balancer)是對多臺雲服務器進行流量分發的負載均衡服務,能夠經過流量分發擴展應用系統對外的服務能力,經過消除單點故障提高應用系統的可用性。web
相關算法
常見的負載均衡實現分別硬件和軟件,apache
商業硬件負載均衡中應用比較普遍的有F五、Netscaler等相關國際提供商瀏覽器
優勢:穩定,硬件級別性能高,非系統無關,有強大可靠的技術支持。緩存
缺點:價格貴,配置冗餘。
服務器
軟件負載均衡中應用比較普遍的有Nginx,Haproxy、Nginx、LVS, Apache(根據HTTP協議支持的屬性進行L7分發)、A/B Test Gateway、WAF等等.app
優勢:基於系統與應用的負載均衡,可以更好地根據系統與應用的情況來分配負載。這對於複雜應用是很重要的,性價比高,實際上若是幾臺服務器,用F5之類的硬件產品顯得有些浪費,而用軟件就要合算得多,由於服務器同時還能夠跑應用作集羣等。負載均衡
缺點:負載能力受服務器自己性能的影響,性能越好,負載能力越大,與系統有關。curl
應用:
互聯網公司(如淘寶、新浪、騰訊等)使用中比較偏向於軟負載均衡,而像農行、建行,聯通等國企偏向於F5之類的硬件負載均衡。
本次主要基於apache經過簡單演示來介紹負載均衡。
環境:
server: Fedora 24 (因爲博主不喜歡CentOS桌面樣式,因此轉向兄弟版Fedora,應用方式都相差無幾)
ip: 192.168.0.13
實戰:
因爲原來已經安裝好了Tengine,因此本次將直接使用Tengine來模擬兩Server站點。分別監聽9096和8080端口提供web服務
站點一:conf/vhost/blog.conf
站點二:conf/vhost/bbs.conf
html目錄下bbs和blog的index.html內容
啓動Tengin並測試
web服務器準備好後安裝apache
下載: wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.23.tar.gz
解包: tar zxvf httpd-2.4.23.tar.gz
進入: cd httpd-2.4.23
檢查並生成Makefile文件:./configure --prefix=/application/httpd-2.4.23 --enable-so --enable-modules="all"
--prefix=/application/httpd-2.4.23 指定安裝目錄
--enable-so 編譯出大部分可用的so文件
--enable-modules="all" 打開全部模塊列表
編譯並安裝:make && sudo make install
安裝完成後
目錄介紹:
bin: 存放apache查關可執行文件
build: 存放腳本目錄
cgi-test: 存放cgi文件目錄
conf: 存放apache相關配置文件目錄
htdocs: 存放html相關目錄
icons: 存放相關圖片目錄
include:存放.h頭文件目錄
logs: 存放相關日誌文件目錄
..
..
modules: 存放相關模塊.so文件目錄
進入conf/extra目錄
新建httpd-proxy.conf文件
2-5行加載apache負載均衡功能必備模塊
6-8行加載apache負載均衡調度算法模塊
11行ProxyRequests Off; 關閉正向代理(開啓反向代理,apache負載均衡基於7層反向代理)
12-15 定義web服務器
16-20 定義開啓Web管理
22-31 定義虛擬主機
修改conf/httpd.conf
增長
#proxy demo
Include conf/extra/httpd-proxy.conf
將ServerName www.example.com:80 修改成
ServerName www.lisea.cn:80
修改/etc/hosts文件
增長192.168.0.13 www.lisea.cn lisea.cn
開啓apache
測試訪問:(因爲瀏覽器訪問會產品緩存和鏈接保持,直接由curl命令模擬訪問請求)
以需求驅動技術,技術自己沒有優略之分,只有業務之分。