nginx簡單配置負載均衡

心血來潮,研究一下linux服務器負載均衡的知識點。本來以爲很簡單的一個事情,不想還是研究了大半天的時間,想想還是記錄下來,以防萬一後面再遇到類似的坑。

先來簡單瞭解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋N臺服務器平均分擔負載,不會因爲某臺服務器負載高宕機而某臺服務器閒置的情況。那麼負載均衡的前提就是要有多臺服務器才能實現,也就是兩臺以上即可。

由於沒有自己用的測試服務器,所以就裝了一個虛擬機(VMware),然後在虛擬機中裝了兩臺centos7。

測試用例A:192.168.0.150

測試用例B:192.168.0.151

對了,linux查看本機IP命令:ifconfig

思路:將A作爲主服務器,本地hosts文件中定義一個域名,我這裏用的域名是151net.com。(這個自己隨意在本地定義就好)

在A服務器中打開nginx.conf文件,在http塊內,server塊外面添加

upstream 151net { 
      server  192.168.0.151:80; 
      server  192.168.0.150:8088; 
} 
server{ 
    listen 80; 
    server_name 151net; 
    location / { 
        proxy_pass        http://151net/; 
        proxy_set_header  Host            $host; 
        proxy_set_header  X-Real-IP        $remote_addr; 
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

保存nginx.conf後重啓nginx服務。

注:A服務器的80端口是用來綁定監聽訪問域名的端口,所以在 upstream中我們使用了8088端口,如果你想吧A服務器也用來做負載的一個服務器的話,下面還得加一個server塊。

server {
        listen       8088;
        server_name  151net.com;
        location / {
            root   /www/tp5/public;
           index  index.php index.html index.htm;
        }
        location ~ \.php$ {
            root           /www/tp5/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

上面代碼就是表明你將A服務的端口8088綁定到了www目錄下的tp5項目中去了。到了A服務器到這裏就結束了。

然後在B服務器正常對nginx.conf進行配置就好了。

B服務器的nginx.conf

server{ 
    listen 80; 
    server_name 151net.com;
    root /www/tp5/public 
    index index.php index.html;  
}

ok,現在重啓一個B服務器的nginx服務,然後在本地服務器打開151net.com,多刷新兩次,看看效果。大功告成。

除了上面這些簡單的配置之外,順便記錄一下關於nginx負載均衡策略:

哈希法:根據獲取客戶端的IP地址,通過哈希函數計算得到一個數值,用該數值對服務器列表的大小進行取模運算,得到的結果便是客服端要訪問服務器的序號。採用源地址哈希法進行負載均衡,同一IP地址的客戶端,當後端服務器列表不變時,它每次都會映射到同一臺後端服務器進行訪問。

實際配置:ip_hash

將ip_hash添加到upstream塊的第一行即可。

輪詢法:將請求按順序輪流地分配到後端服務器上,它均衡地對待後端的每一臺服務器,而不關心服務器實際的連接數和當前的系統負載。

就是開始默認的方式。

加權隨機法:與加權輪詢法一樣,加權隨機法也根據後端機器的配置,系統的負載分配不同的權重。不同的是,它是按照權重隨機請求後端服務器,而非順序。

實際配置:weight=2

將weight=2放在ip地址之後(server 192.168.0.151:80  weight=2;)

weight後面的數值代表權重,數值越大,表示權重越高。

 

好了。今天的分享就是這樣子了,後面我會找時間再寫一下負載均衡時候關於session的相關問題。

如果你遇到問題的話,可以給我留言哈,能解決的肯定不會推辭的!哈哈哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章