windows配置nginx實現負載均衡集羣 -請求分流

windows配置nginx實現負載均衡集羣

一、windows上安裝nginx

1、下載nginx的windows版本http://nginx.org/en/download.html

2、把壓縮文件解壓至c盤根目錄,並將文件夾重命名成nginx

3、在conf目錄下的nginx.conf文件中,指定一個不衝突的端口號,這裏測試用8088,代碼段如下:

server { 
     listen       8090; 
     server_name  localhost; 
} 

4、打開cmd命令行,運行如下命令:start nginx.exe

1. >cd c:\nginx 
2. >nginx 

好了,試試吧,打開瀏覽器,輸入127.0.0.1:8090,如果出現下圖,那就說明nginx服務器已經成功安裝.

二、配置nginx負載均衡

1、打開conf目錄下的nginx.conf,具體配置代碼如下:

#nginx進程,一般設置爲和cpu核數一樣
worker_processes  1;

#全局錯誤日誌及PID文件
error_log  logs/error.log;
pid        logs/nginx.pid;

#工作模式及連接數上限
events {
    use   epoll;             #epoll是多路複用IO(I/O Multiplexing)中的一種方式,但是僅用於linux2.6以上內核,可以大大提高nginx的性能
    worker_connections  1024;#單個後臺worker process進程的最大併發鏈接數
    # multi_accept on; 
}

#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {
    include       mime.types;#文件擴展名與類型映射表
    default_type  application/octet-stream;#默認文件類型
    access_log    logs/access.log; #設定日誌格式
    sendfile      on; #開啓高效傳輸模式     
    #連接超時時間 單位是秒
    keepalive_timeout  65;
    tcp_nodelay        on;
    #開啓gzip壓縮
    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    #設定請求緩衝
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    
    #設定負載均衡的服務器列表
    upstream leizi { #weigth參數表示權值,權值越高被分配到的機率越大
        server 10.204.3.223:8090 weight=1 max_fails=2 fail_timeout=30s;#真實服務器A
        server 10.204.3.20:8090 weight=1 max_fails=2 fail_timeout=30s;#真實服務器B #這裏是在30s內嘗試2次失敗即認爲主機不可用!
    }
    #基於域名的虛擬主機
    server {#Nginx代理服務器 
        listen       8090;
        server_name  localhost;
        access_log  logs/localhost.access.log  main;#設定本虛擬主機的訪問日誌
        #默認請求
        location / {
            root   html; #站點根目錄,即網站程序存放目錄 
            index  index.html index.htm index.php;  #首頁排序

            proxy_pass  http://leizi; #請求轉向leizi定義的服務器列表
            proxy_redirect  default; 
        }
        # 定義錯誤提示頁面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        #靜態文件,nginx自己處理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            root html;
            #過期30天,靜態文件不怎麼更新,過期可以設大一點,如果頻繁更新,則可以設置得小一點。
            expires 30d;
        }
        #location 標籤,根目錄下的.svn目錄禁止訪問
        location ~ /.svn/ {
         deny all;
        }
        #設定查看Nginx狀態的地址
        location /NginxStatus {
            stub_status            on;
            access_log              on;
            auth_basic              "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
    }
}

2、重啓一下nginx吧,你可以在任務管理器中將原來的兩個nginx進程結束然後按前面安裝時的方法啓動nginx,也可以直接輸入命令:nginx -s reload來重啓

三、部署網站

1、準備兩個完全一樣的ASP.NET測試網站程序,

2、分別放在leizi服務器列表的IIS中,輸入對應的ip地址試一下是否可用訪問。

3、訪問代理服務器 127.0.0.1:8090 訪問結果是每刷新一次就在leizi列表之間切換。

四、總結:

​ 訪問代理服務器 127.0.0.1:8090 訪問結果是每刷新一次就在leizi列表之間切換 這樣就起到了簡單的輪詢訪問的效果,一定程度上起到了負載分流的作用至此,windows配置nginx實現負載均衡集羣已經完成。

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