Apache負(fù)載均衡設(shè)置方法mod_proxy使用介紹

一般來(lái)說(shuō),負(fù)載均衡就是將客戶(hù)端的請(qǐng)求分流給后端的各個(gè)真實(shí)服務(wù)器,達(dá)到負(fù)載均衡的目的。還有一種方式是用兩臺(tái)服務(wù)器,一臺(tái)作為主服務(wù)器(Master),另一臺(tái)作為熱備份(Hot Standby),請(qǐng)求全部分給主服務(wù)器,在主服務(wù)器當(dāng)機(jī)時(shí),立即切換到備份服務(wù)器,以提高系統(tǒng)的整體可
第一次看到這個(gè)標(biāo)題時(shí)我也很驚訝,Apache居然還能做負(fù)載均衡?真是太強(qiáng)大了。經(jīng)過(guò)一番調(diào)查后發(fā)現(xiàn)的確可以,而且功能一點(diǎn)都不差。這都?xì)w功于 mod_proxy 這個(gè)模塊。不愧是強(qiáng)大的Apache啊。

廢話少說(shuō),下面就來(lái)解釋一下負(fù)載均衡的設(shè)置方法。

一般來(lái)說(shuō),負(fù)載均衡就是將客戶(hù)端的請(qǐng)求分流給后端的各個(gè)真實(shí)服務(wù)器,達(dá)到負(fù)載均衡的目的。還有一種方式是用兩臺(tái)服務(wù)器,一臺(tái)作為主服務(wù)器(Master),另一臺(tái)作為熱備份(Hot Standby),請(qǐng)求全部分給主服務(wù)器,在主服務(wù)器當(dāng)機(jī)時(shí),立即切換到備份服務(wù)器,以提高系統(tǒng)的整體可靠性。

1. 負(fù)載均衡的設(shè)置

1).基本配置成都機(jī)柜租用
Apache可以應(yīng)對(duì)上面這兩種需求。先來(lái)討論一下如何做負(fù)載均衡。假設(shè)一臺(tái)apache服務(wù)器域名為www.a.com, 首先需要啟用Apache的幾個(gè)模塊:
Httpd.conf代碼

創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、做網(wǎng)站、廣昌網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、廣昌網(wǎng)絡(luò)營(yíng)銷(xiāo)、廣昌企業(yè)策劃、廣昌品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供廣昌建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.muchs.cn

復(fù)制代碼代碼如下:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

mod_proxy提供代理服務(wù)器功能,mod_proxy_balancer提供負(fù)載均衡功能, mod_proxy_http讓代理服務(wù)器能支持HTTP協(xié)議。如果把mod_proxy_http換成其他協(xié)議模塊(如mod_proxy_ftp),或許能支持其他協(xié)議的負(fù)載均衡,有興趣的朋友可以自己嘗試一下。

然后要添加以下配置:
Httpd.conf代碼

復(fù)制代碼代碼如下:

ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080
</Proxy>
ProxyPass / balancer://mycluster/
# 警告:以下這段配置僅用于調(diào)試,絕不要添加到生產(chǎn)環(huán)境中!成都小程序開(kāi)發(fā)公司!成都小程序開(kāi)發(fā)公司!成都小程序開(kāi)發(fā)公司
<Location /balancer-manager>
SetHandler balancer-manager
order Deny,Allow
Deny from all
Allow from localhost
</Location>

注:node-a.myserver.com,node-b.myserver.com是另外兩臺(tái)服務(wù)器的域名,不是當(dāng)前服務(wù)器的域名

從上面的 ProxyRequests Off 這條可以看出,實(shí)際上負(fù)載均衡器就是一個(gè)反向代理,只不過(guò)它的代理轉(zhuǎn)發(fā)地址不是某臺(tái)具體的服務(wù)器,而是一個(gè) balancer:// 協(xié)議:

ProxyPass / balancer://mycluster協(xié)議地址可以隨便定義。然后,在<Proxy>段中設(shè)置該balancer協(xié)議的內(nèi)容即可。 BalancerMember指令可以添加負(fù)載均衡組中的真實(shí)服務(wù)器地址。

下面那段<Location /balancer-manager>是用來(lái)監(jiān)視負(fù)載均衡的工作情況的,調(diào)試時(shí)可以加上(生產(chǎn)環(huán)境中禁止使用!成都小程序開(kāi)發(fā)公司),然后訪問(wèn) http://localhost/balancer-manager/ 即可看到負(fù)載均衡的工作狀況。

OK,改完之后重啟服務(wù)器,訪問(wèn)你的Apache所在服務(wù)器的地址(www.a.com),即可看到負(fù)載均衡的效果了。

出錯(cuò)提示:
訪問(wèn)網(wǎng)頁(yè)提示Internal Serveral Error,察看error.log文件
Error.log代碼

復(fù)制代碼代碼如下:

[warn] proxy: No protocol handler was valid for the URL /admin/login_form. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

原因是配置:# ProxyPass / balancer://mycluster 可能少了一個(gè)/

2). 負(fù)載比例分配
打開(kāi) balancer-manager 的界面,可以看到請(qǐng)求是平均分配的。

如果不想平均分配怎么辦?給 BalancerMember 加上 loadfactor 參數(shù)即可,取值范圍為1-100。比如你有三臺(tái)服務(wù)器,負(fù)載分配比例為 7:2:1,只需這樣設(shè)置:
Httpd.conf代碼

復(fù)制代碼代碼如下:

ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster

3).負(fù)載分配算法

默認(rèn)情況下,負(fù)載均衡會(huì)盡量讓各個(gè)服務(wù)器接受的請(qǐng)求次數(shù)滿(mǎn)足預(yù)設(shè)的比例。如果要改變算法,可以使用 lbmethod 屬性。如:
Httpd.conf代碼

復(fù)制代碼代碼如下:

ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080 loadfactor=7
BalancerMember http://node-b.myserver.com:8080 loadfactor=2
BalancerMember http://node-c.myserver.com:8080 loadfactor=1
</Proxy>
ProxyPass / balancer://mycluster
ProxySet lbmethod=bytraffic

lbmethod可能的取值有:

lbmethod=byrequests 按照請(qǐng)求次數(shù)均衡(默認(rèn))
lbmethod=bytraffic 按照流量均衡
lbmethod=bybusyness 按照繁忙程度均衡(總是分配給活躍請(qǐng)求數(shù)最少的服務(wù)器)

各種算法的原理請(qǐng)參見(jiàn)Apache的文檔。

2. 熱備份(Hot Standby)
熱備份的實(shí)現(xiàn)很簡(jiǎn)單,只需添加 status=+H 屬性,就可以把某臺(tái)服務(wù)器指定為備份服務(wù)器:

Httpd.conf代碼

復(fù)制代碼代碼如下:

ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember http://node-a.myserver.com:8080
BalancerMember http://node-b.myserver.com:8080 status=+H
</Proxy>
ProxyPass / balancer://mycluster

從 balancer-manager 界面中可以看到,請(qǐng)求總是流向 node-a ,一旦node-a掛掉, Apache會(huì)檢測(cè)到錯(cuò)誤并把請(qǐng)求分流給 node-b。Apache會(huì)每隔幾分鐘檢測(cè)一下 node-a 的狀況,如果node-a恢復(fù),就繼續(xù)使用node-a。

當(dāng)前名稱(chēng):Apache負(fù)載均衡設(shè)置方法mod_proxy使用介紹
網(wǎng)站路徑:http://www.muchs.cn/article44/dgjhe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站營(yíng)銷(xiāo)搜索引擎優(yōu)化、做網(wǎng)站、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)