採用軟體負載平衡器實現web伺服器叢集

來源:互聯網
上載者:User

我用nginx實現網站負載平衡測試的例子,windows下IIS做負載實測.

 

 

如果你的網站訪問量(pv)越來越高,一台伺服器已經沒有辦法承受流量壓力,那就增多幾台WEB伺服器來做負載吧。

做網站負載可以買硬體裝置來實現,我們公司用的是F5,不過價格就幾十萬到上百萬,太貴了,

目前好多門戶網站與大訪問量的網站都在使用nginx做為HTTP伺服器,所以nginx是非常優秀的,下面我親手做這個負載測試吧。

軟/硬體環境:

 

(2台伺服器)
第一台:
 CPU:Inter(R) 酷睿 i5 CPU 2.26GHz

 記憶體:2G
 系統:windows 7
 IIS: IIS 7
 nginx:nginx/Windows-0.8.22
 IP:10.60.44.126
 環境:本地
第二台:
 CPU:Inter(R) 酷睿 i3 CPU 2.13GHz

 記憶體:2G
 系統:windows Server 2003
 IIS: IIS 6
 IP:10.60.44.127
 環境:遠程

 

注意:
 本次測試,軟體nginx放在本地(10.60.44.126),也就是說放在網域名稱綁定的那台伺服器,這台伺服器的IIS不能使用80連接埠,因為等下nginx軟體要使用80這個連接埠。
下載nginx的地址如下:
nginx下載:http://nginx.net/
本次測試使用的版本下載:nginx/Windows-0.8.22

下載解壓到C:,把目錄名改成nginx

 

實踐步驟:

第一:

        在本地(10.60.44.126)這台伺服器IIS建立一個網站,使用連接埠為808,如:

     

        IIS 網站綁定設定圖

第二:

       在遠程10.60.44.127的IIS建立一個網站,使用連接埠為808,如:

 

遠程IIS綁定設定圖

     注意:第一步和第二步綁定相同的網站程式!

第三:

好了,以上已經設定好兩台伺服器的IIS了,下面配置nginx軟體來實現網站負載平衡器,開啟如下檔案:

C:\nginx\conf\nginx.conf

1、找到內容server {

在這上面加入如下內容:

upstream  chenlu.com { 
  server   10.60.44.126:808;
  server   10.60.44.127:808;
    }

(這是負載切換使用的伺服器網站IP)

2、找到location / {
            root   html;
            index  index.html index.htm;
        }

把內容更改如下:

location / {
            proxy_pass http://chenlu.com/;
            proxy_redirect default;
        }

3、找到server {
        listen       80;
        server_name  localhost;

把內容改成如下:

server {
        listen       80;
        server_name  10.60.44.126;

(這是監聽訪問網域名稱綁定那台伺服器80連接埠的請求)

好,在這裡就這麼簡單配置好了,下面看下以上3步配置的圖:

 

 

負載平衡器配置圖

第四:

      都配置好了,下面啟動nginx這軟體

      進入命令提示字元CMD,進入c:\nginx>,輸入nginx命令,如:

 

 

啟動nginx

這時候,系統進程有兩個nginx.exe進程,如:

 

系統nginx進程

停止nginx運行輸入nginx -s stop 即可

 

第五:

       經過以上的配置,現在我們看下負載效果:

       在本地(10.60.44.126)這伺服器開啟IE,輸入:http://10.60.44.126/

       第一次開啟網站的結果圖:

 

第一次運行網站圖

        再重新整理一下網頁,出現的結果圖:

 

再次訪問網站圖

很好,網站已經負載成功。

經過這次測試,實現網站負載再也不是難事了。也不用購買非常貴的硬體裝置了。網上介紹說nginx軟體可以處理並發上萬,所以絕對是個非常不錯的選擇。

如果網站訪問量非常大,可以專門用一台伺服器跑nginx,其它伺服器跑網站程式(幾台伺服器的程式都是一樣的),這樣負載就沒有太大問題,如果再不行,把網站一些欄目做一個2級網域名稱,2級網域名稱同樣做負載,這樣更厲害了吧。

nginx軟體在linux上跑效能比在windows上跑要好,所以做負載可以用linux跑nginx,.net開發的網站放到windows伺服器IIS上。

注意:

1找到本地機器的 \WINDOWS\system32\drivers\etc,修改hosts檔案,添加10.60.44.126   www.chenlulouis123456.com   注釋掉#host

2 找到遠程機器的 \WINDOWS\system32\drivers\etc,修改hosts檔案 10.60.44.127  www.chenlulouis123456.com

3.

 

  

upstream  chenlu.com
    { 
        server   10.60.44.126:808;
        server   10.60.44.127:808;
    }
    server {
        listen       80;
        server_name  http://www.chenlu123456.com/;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass  http://chenlu.com/;
            proxy_redirect  default;
        }

進過以上步驟,就可以使本地和遠程機器通過網域名稱訪問做實驗,避免實際網域名稱綁定。

 

 

希望大家喜歡哈!

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.