apache和nginx負載均衡配置

 一、apache負載均衡器操作

            apache功能其實很是強大,最近一段時間研究了下apache的反向代理和負載均衡,反向代理網協的外網出口和我的博客出口就是通過apache的反向代理實現的,總結一下,重點說說負載均衡的配置。
            
            操作系統:DEBIAN 5.03(Ubuntu也可以同理配置)

            (1)、輪詢均衡策略的配置

            進入Apache的conf目錄,打開httpd.conf文件,在文件的末尾加入:

            ProxyPass / balancer://proxy/         #注意這裏以"/"結尾
            <Proxy balancer://proxy>
                BalancerMember http://www.php186.com/
                BalancerMember http://www.php186.com/
            </Proxy>

            我們來觀察上述的參數“ProxyPass / balancer://proxy/”,其中,“ProxyPass”是配置虛擬服務器的命令,“/”代表發送Web請求的URL前綴,如:http: //myserver/或者http://myserver/aaa,這些URL都將符合上述過濾條件;“balancer://proxy/”表示要配置負載均衡,proxy代表負載均衡名;BalancerMember 及其後面的URL表示要配置的後臺服務器,其中URL爲後臺服務器請求時的URL。以上面的配置爲例,實現負載均衡的原理如下:
            假設Apache接收到http://localhost/aaa請求,由於該請求滿足ProxyPass條件(其URL前綴爲“/”),該請求會被分發到後臺某一個BalancerMember,譬如,該請求可能會轉發到 http://www.php186.com/aaa進行處理。當第二個滿足條件的URL請求過來時,該請求可能會被分發到另外一臺 BalancerMember,譬如,可能會轉發到http://www.php186.com/。如此循環反覆,便實現了負載均衡的機制。

            (2)、按權重分配均衡策略的配置

            ProxyPass / balancer://proxy/         #注意這裏以"/"結尾
            <Proxy balancer://proxy>
                BalancerMember http://www.php186.com/  loadfactor=3
                BalancerMember http://www.php186.com/  loadfactor=1
            </Proxy>

            參數”loadfactor”表示後臺服務器負載到由Apache發送請求的權值,該值默認爲1,可以將該值設置爲1到100之間的任何值。以上面的配置爲例,介紹如何實現按權重分配的負載均衡,現假設Apache收到http://myserver/aaa 4次這樣的請求,該請求分別被負載到後臺服務器,則有3次連續的這樣請求被負載到BalancerMember爲 http://www.php186.com的服務器,有1次這樣的請求被負載BalancerMember爲http: //www.php186.com後臺服務器。實現了按照權重連續分配的均衡策略。

            (3)、權重請求響應負載均衡策略的配置

            ProxyPass / balancer://proxy/ lbmethod=bytraffic  #注意這裏以"/"結尾
            <Proxy balancer://proxy>
                BalancerMember http://www.php186.com/  loadfactor=3
                BalancerMember http://www.php186.com/  loadfactor=1
            </Proxy>

            參數“lbmethod=bytraffic”表示後臺服務器負載請求和響應的字節數,處理字節數的多少是以權值的方式來表示的。 “loadfactor” 表示後臺服務器處理負載請求和響應字節數的權值,該值默認爲1,可以將該值設置在1到100的任何值。根據以上配置是這麼進行均衡負載的,假設 Apache接收到http://myserver/aaa請求,將請求轉發給後臺服務器,如果BalancerMember爲http: //www.php186.com後臺服務器負載到這個請求,那麼它處理請求和響應的字節數是BalancerMember爲http: //www.php186.com 服務器的3倍(回想(2)均衡配置,(2)是以請求數作爲權重負載均衡的,(3)是以流量爲權重負載均衡的,這是最大的區別)。
            注:每次修改httpd.conf,用apachectl –k restart重新啓動Apache。


        二、Nginx負載均衡操作
             Nginx 是由 Igor Sysoev 爲俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。Igor 將源代碼以類BSD許可證的形式發佈。儘管還是測試版,但是,Nginx 已經因爲它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名了。
             首先是配置十分的簡單,而且功能非常強大。真是相見恨晚。先來看看配置文件怎麼寫吧

            worker_processes 1;  
            events {  
                worker_connections 1024;  
            }  
            http{  
                upstream myproject {  
                    #這裏指定多個源服務器,ip:端口,80端口的話可寫可不寫  
                    server 192.168.43.158:80;  
                    server 192.168.41.167;  
                }  
                server {  
                    listen 8080;  
                    location / {  
                        proxy_pass http://myproject;  
                    }  
                }  
            } 

Nginx負載均衡有哪些功能呢?

            如果後面的服務器其中一臺壞了,它能自動識別,更牛的是它好了之後Nginx可以馬上識別服務器A和B,如果A的響應時間爲3,B的響應時間爲1,那麼 Nginx會自動調整訪問B的概率是A的3倍,真正做到Nginx負載均衡好的,安裝完成了。我在make的時候報了個錯,說HTTP Rewrite 模塊 有問題,我就

            ./configure –without-http_rewrite_module
            然後再make,make install就可以了。

            安裝好了之後新建一個配置文件,把上面的配置文件內容拷進去,當然要修改你的IP,保存爲比如 load_balance.conf然後啓動:

            /usr/local/Nginx/sbin/Nginx -c load_balence.conf

            由於Nginx的作者是俄國人,所以英文的文檔也不是那麼完善,對於我來說Nginx的最大優點還是配置簡單,功能強大。我曾經配過 apache-jk,那真的不是一般人能配的。太複雜了,而且只能用來做tomcat的Nginx負載均衡。

            Nginx就沒有這個限制,對它來說後面是什麼服務器是完全透名的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章